/*

filename    midgaard
password    release
changedby   Darg
EmailAdd    Mark Pringle darg@valhalla.com
request     compile
version     31
END HEADER*/

























#include

#define _POLICE_SCHOOL /* not a real guild, can have 2 simultaneously */

%zone midgaard
title "Midgaard City"
lifespan 20
reset RESET_ANYHOW

creators {"papi", "quifael"}
notes
"This is the major capital of DikuMud II. It was initially the starting
city, but has been deemed much too large for this purpose. Therefore it
was replaced by Udgaard."

help
"&l             North Midgaard

                   1 1 1 1 1 1 1 1 1 1 1 1 1
 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2

A                     @
                     |
B     R             R-#-R             R
     |               |               |
C     W-------W-------W-------W-------D        Cathedral            F11
     |       |       |       |       |
D     |       |       #       |       |        Shops
     |       |       |       |       |          Magic Shop         E16
E     |       #     #-#-#     #-S     |          Tailor Shop        G16
     |       |     |   |     |       |          Pet Shop           H05
F     W       |   G-# C #-G   |       W          Leather Shop       H17
     |       |     | | |     |       |          Ironmonger's Shop  J05
G     |     I-#-----#-#-#-----#-S     |          Baker's Shop       J07
     |       |       |       |       |          Greengrocer's Shop J09
H   R |   S   |   O   |   O   |   S   | R        Butcher's Shop     J17
   | |   |   |   |   |   |   |   |   | |        Boat Shop          L06
I @-#-W---#---#---#---#---#---#---#---W-#-@      Fish Shop          L08
   | |   |   |   |   |   |   |   |   | |        Armour's Shop      Q09
J   R |   S   S   S   |   T   |   S   | R        Mortican's Shop    S05
     |               |       |       |          Blacksmith's Shop  S09
K     |               #-I   O-#       |          Carpenter's Shop   T05
     |               |       |       |          Weaponsmith's Shop T08
L     |     S   S     |       |       |          Jeweller's Shop    T14
     |     |   |     |       |       |          Bank               T16
M     W-----#-#-#-----#---#---#---#---W          Item Storage       T17
     |       |       |               |
N     W       #       #               W        Inns
     |               |               |          Grunting Boar      K12
                                                Filthy's           G06
  South Midgaard.                               Park Cafe          S14
                   1 1 1 1 1 1 1 1 1 1 1 1
 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                              Guilds
     |               |               |          Paladins           F09
O     W---#---#---#---#---#---#---#---W          Sorcerors          Y03
     |       |       |       |       |
P     |       #       #       #       |        Connections
     |       |       |       |       |          Cypress Forest     I01
Q     |     #-#-#-S   |     #-#-#     |          The Moor           A11
     |     |   |     |     |   |     |          Kings Road         I21
R     D-#-#-# C #-#-#-#-#-#-#-# #-#-#-W          Etz-Nab Woods      Z11
     |     | | |     |       | |     |          Palace             U11
S     |   S-#-#-#-S   #     I-#-#     |
     |     | | |     |       |       |          D - manhole to the
T     |     S # S   #-#-#   S-#-O-T   |          sewers
     |       |     | | |     |       |
U     |       #-----# P #-----#       |          R - the rampart walls
     |       |     |   |     |       |          of Midgaard
V     |       #     #-#-#     #       |
     |       |       |       |       |
W     |       #       #       #       |
     |       |       |       |       |
X     W-------W-------G-------W-------W
     |               |
Y     G             R-#-R
                     |
Z                     @

Artist: Tarus the Rabbit Slayer"

%dil

// New janitor dil, should pick up stuff (wander around not included)
// Rate is the hearbeat in seconds between foreach loops (note that
// there's no wander block while he's picking up stuff add by Dariya)
// Ratlin fixed built in bug that allowed bag to be used as a carry
// around portal

dilbegin janitors(rate: integer);
var
    trash : unitptr;
s : string;
sl : stringlist;
msgs : stringlist;
songs : stringlist;
sing1 : stringlist;
move : stringlist;
msg : integer;
msg2 : integer;
obj : unitptr;
intg : integer;

inits: integer; // Boolean (added by S)

code
{
if (inits == FALSE)
   {
   obj := load ("tbag@midgaard");
   link (obj, self);
   obj := null;
   inits := TRUE;
   }

heartbeat := PULSE_SEC*rate;
msgs := {"Ewww, a corpse.",
  "Geez, people just leave these things lying around these days.",
  "I wonder who killed that poor sucker.",
  "I always knew that guy was a pansy.",
  "He had it coming to him anyhow."};
songs:={"sing1"};
sing1:={"I can see a bare-bottomed mandril,",
"Slyly eyeing his upper nostril,",
"If he jumps inside there too,",
"I really won't know what to do,",
"I'll be a proud possessor of a kind of nasal zoo,",
"A nasal zoo.",
"I've got a ferret sticking up my nose,",
"And what is worse it constantly explodes,",
"Ferrets don't explode you say,",
"But it happened nine times yesterday,",
"And I should know 'cause each time,",
"I was standing in the way.",
"I've got a ferret sticking up my nose,",
"I've got a ferret sticking up my nose,",
"How it got there I can't tell,",
"But now it's there it hurts like hell,",
"And what is more it radically affects my sense of smell."};
move := {"fear",
  "cringe",
  "cringe"};
:start:
:collect:
pause;
foreach (UNIT_ST_OBJ, trash)
{
secure(trash, collect);
if (not findsymbolic(self, "tbag@midgaard", FIND_UNIT_IN_ME)) goto
s_break;

if (self.outside.flags & UNIT_FL_NO_BURY) continue;
if (trash.flags & UNIT_FL_BURIED) continue;
if (not isset (trash.manipulate, MANIPULATE_TAKE)) continue;
if (can_carry (self, trash, 1) == TRUE) continue; // Can't carry

if (not visible(self,trash)) continue;

if ("treasure" == trash.zoneidx) continue;
if ((trash.nameidx + trash.zoneidx == "corpsebasis")
 and (trash.value[2] == 0))
 {
 pause;
 if(isset (self.outside.flags, UNIT_FL_NO_BURY)) continue;
 if (trash.inside != null)
 {
 msg := rnd(0, (length(msgs)-1));
 exec("say "+msgs.[msg], self);
 exec("get all from corpse", self);
 exec("bury "+trash.name, self);
 exec("put all in bag", self);
 continue;
 }
 if ((trash.nameidx + trash.zoneidx == "corpsebasis")
  and (trash.value[2] == 0) and (trash.inside == null)) goto npc;
 else
 {
 :npc:
 msg := rnd(0, (length(msgs)-1));
 exec("say "+msgs.[msg], self);
 exec("bury "+trash.name, self);
 continue;
 }
}
if ((trash.nameidx + trash.zoneidx == "corpsebasis")
 and (trash.value[2] == 0) and (trash.inside == null))
 {
 pause;
 msg := rnd(0, (length(msgs)-1));
 exec("say "+msgs.[msg], self);
 exec("bury "+trash.name, self);
 continue;
 }
if ((trash.nameidx + trash.zoneidx == "corpsebasis")
 and (trash.value[2] == 1) and (trash.inside != null))
 {
 if ("$owner notified" in trash.extra) continue;
 else
  {
  sl := getwords(trash.name);
  s := sl.[2];
  pause;pause;
  exec ("tell "+s+" Your corpse is at "     +self.outside.title
   +", please pick it up.", self);
  addextra (trash.extra, {"$owner notified"}, "");
  continue;
  }
 }
if ((trash.nameidx + trash.zoneidx == "corpsebasis")
and (trash.value[2] == 1) and (trash.inside == null))
 {
 pause;
 exec("bury "+trash.name, self);
 continue;
 }
if ((trash.nameidx + trash.zoneidx == "slimebasis"))
 {
 pause;
 exec("say Ewww, slime!", self);
 msg2 := rnd(0, (length(move)-1));
 exec(move.[msg2], self);
 pause;
 exec("emote utters the words, 'fadiz univisa!'..", self);
 act("$2n de-materializes before your very eyes.",
  A_ALWAYS, self, trash, null, TO_ALL);
 destroy(trash);
 continue;
 }
if ((trash.nameidx + trash.zoneidx == "headbasis"))
 {
 pause;
 exec("say looks like someone lost their head.", self);
 exec("chuckle", self);
 pause;
 exec("emote utters the words, 'fadiz univisa!'..", self);
 act("$2n de-materializes before your very eyes.",
  A_ALWAYS, self, trash, null, TO_ALL);
 destroy(trash);
 continue;
 }
if ((trash.objecttype == ITEM_FOOD) or (trash.objecttype ==
ITEM_DRINKCON))
 {
 pause;
 exec("get "+trash.name, self);
 if (trash.value[3] > 0)
  {
  exec("say This "+trash.name+" is unfit for consumption!", self);
  act("$1n heaves the $2n into the distance.",
   A_ALWAYS, self, trash, null, TO_ALL);
  destroy(trash);
  goto no_food;
  }
 act("$1n donates $2n to a worthy cause.",
  A_ALWAYS, self, trash, null, TO_ALL);
 link(trash, findroom("jandump2@midgaard"));
 :no_food:
 pause;
 continue;
 }
else
 {
 exec("get "+trash.name, self);
 if ("bag" in trash.names)
  {
  exec("put "+ trash.name +" in 2.bag",self);
  pause;
  continue;
  }
 else
  {
  exec("put "+ trash.name +" in bag",self);
  pause;
  continue;
  }
 }
pause;pause;
}
goto start;
:s_break:
addextra (self.extra, {"$block wander"}, "");
exec("say Where did my trash bag get to?", self);
pause;
exec("boggle self", self);
pause;pause;pause;pause;
exec("say Well, good time for a break I guess.", self);
pause;
exec("rest", self);
pause;pause;pause;pause;pause;
exec("emote clears his throat in preparation for a song.", self);
pause;

intg := 0;
while (intg < length(sing1))
{
exec("emote sings, '"+sing1.[intg]+"'", self);pause;
intg := intg+1;
}


pause;pause;pause;pause;pause;pause;
exec("say I'd better get back to work before I get in trouble.", self);
pause;pause;
exec("stand", self);
pause;pause;
link(load("tbag@midgaard"),self);
exec("emote gets a trash bag from his back pocket.", self);
pause;
exec("say Rule number one: always carry a spare.", self);
exec("snicker", self);
pause;pause;pause;pause;
subextra (self.extra,"$block wander");
goto start;

}
dilend

dilbegin item_charge(base_charge:integer);

external
 string accept_dil@function (pc:unitptr,s:string);

var
  tcost   : integer;
  state   : integer;
  magmod  : integer;
  addmag  : integer;
  die     : integer;
  result  : integer;
  percent : integer;
  thing   : unitptr;
  pc      : unitptr;
  answer  : string;
  mn      : string;

code
{

:init:
  heartbeat := PULSE_SEC*5;
  self.spells[SPL_RECONSTRUCT] := 200;

:start:
  wait (SFB_DONE,( (command("give")) and (self==target) ));

pc:=activator;
thing:=medium;
secure(pc,lost_pc);
secure(thing,lost_pc);

if( not visible( self, pc ) )
  {
     exec("say I only do business with people i can see.", self );
     exec("drop " + (thing.name), self);
     goto lost_pc;
  }

dilcopy ("busy@function(Please wait I am busy with other work right now.",
self)
;

if (thing.type!=UNIT_ST_OBJ)
  {
     exec ("say How am I supposed to recharge that then
"+pc.name+"?",self);
     exec ("bonk " + pc.name,self);
     goto give_back;
  }

if ((thing.objecttype!=ITEM_WAND) and (thing.objecttype!=ITEM_STAFF))
  {
     exec ("say How am I supposed to recharge that then
"+pc.name+"?",self);
     exec ("bonk " + pc.name,self);
     goto give_back;
  }

/* If people don't wish their wands/staffs rechargable by shops, they declare
  an extra, $norecharge, on the item. */

if ("$norecharge" in thing.extra)
  {
     exec ("say I can't recharge this " + thing.title +
           "," + pc.name +". It is beyond my ability.", self);
     goto give_back;
  }

if ( thing.value[1] == thing.value[4] )
  {
     exec("say It is fully charged, what do you want " +
          "to go charging it for?!?", self);
     exec("bonk " + pc.name, self);
     goto give_back;
  }

state:=thing.value[4]-thing.value[1];
goto how_much;


:broken_thing:
  exec("say Oh my, it's broken. I can't fix that. I suggest " +
       "you try to obtain another.", self);
  goto give_back;

:not_possible:
  exec("say Oh dear, I'm afraid that it's past the point " +
          "of no return. Repairing it would only make it " +
          "worse " + pc.name + ".", self);
  goto give_back;

:how_much:
  tcost := (base_charge*160); /* Base cost in 1 gold 2 sp. Modified by
                                  how badly damaged the item is and its
                                  Magical Modifier */
  tcost := tcost * state;     /* Adjust for how bad the damage is */
  magmod := thing.value[0]; /* Take spell power into account    */

  if (magmod > 0)
  {
     addmag := magmod; /* 1 gp per mag point */
     tcost := tcost * addmag;  /* Final cost         */
  }

  mn := moneystring(tcost, 0);
  exec ("say It will cost you " + mn + " for me to " +
        "recharge that for you.", self);
  answer := accept_dil@function(pc, "Are you sure you want me to recharge
it?");
  pause;

  if (answer=="no")
  {
     exec("say Very well. Come back to me when you want it recharged.",
self);
     goto give_back;
  }

  if (transfermoney(pc, self, tcost))
  {
     exec(", touches " + thing.name + " softly and begins to chant...", self);
:repair_it:
     if(thing.objecttype==ITEM_WAND)
       result := cast_spell(SPL_CHARGE_WAND, self, self, thing, "");
     else
       result := cast_spell(SPL_CHARGE_STAFF, self, self, thing, "");
     if (thing.value[1] < thing.value[4]) goto repair_it;
     heartbeat:=PULSE_SEC*1;
     pause;
     exec("say There, hope you like it, " + pc.name + "!", self);
     heartbeat:=PULSE_SEC*5;
     goto give_back;
  }
  else goto no_money;

:no_money:
  exec ("say You can't afford my services right now. Please come back " +
        "when you have enough money.",self);
  goto give_back;

:give_back:
  act( self.name + " returns your " + thing.name + " to you.",
      A_ALWAYS,pc,null,null,TO_CHAR);
  act(self.name + " returns $1n's " + thing.name + " to $1m.",
      A_SOMEONE,pc,null,null,TO_REST);
  link(thing,pc);
  goto lost_pc;

:lost_pc:
  die := dildestroy ("busy@function",self);
  unsecure(pc);
  unsecure(thing);
  goto start;
}
dilend /* wand_charge */


dilbegin engrave();
var
 pc     : unitptr;
 ting   : unitptr;
 pris   : integer;
 i      : integer;
 text   : string;
 blah   : extraptr;
cash   : string;
code
{
heartbeat := PULSE_SEC*4;
   :start:
wait(SFB_DONE,command("give")and(self == target));
if(not visible(self,medium))goto start;
if(not visible(self,activator))
{
exec("sigh",self);
exec("say How can I deal with someone I can't see?", self );
exec("drop"+medium.name,self);
goto start;
}
pc := activator;
ting := medium;
secure(pc,nopc);
secure(ting,ingenting);
dilcopy("busy@function(Please wait; I am working right now.)",self);

if((ting.type != UNIT_ST_OBJ)or(ting.objecttype == ITEM_LIGHT)
or(ting.objecttype == ITEM_SCROLL)or(ting.objecttype == ITEM_FOOD)
or(ting.objecttype == ITEM_BOOK)or(ting.objecttype == ITEM_SPELL)
or(MAT_CLOTH in ting.extra)or(MAT_FIRE in ting.extra)or
((ting.objecttype == ITEM_ARMOR)and(ting.value[0]==0)))
{
exec("say Sorry, it is beyond my ability to engrave this.",self);
    :giveback:
unsecure(ting);
link(ting, pc);
act("$3n gives $2n to $1n.",A_SOMEONE,pc,ting,self,TO_REST);
act("$3n gives $2n to you.",A_SOMEONE,pc,ting,self,TO_CHAR);
i:=dildestroy("busy@function",self);
unsecure (pc);
goto start;
}

if("engraving" in ting.extra)
{
exec("say Hmm... this item appears to be engraved already, "+pc.name+
".",self);
goto giveback;
}

if("$no_engrave" in ting.extra)
{
exec("emote examines "+ting.title+"carefully...",self);
exec("say This item cannot be engraved. I am sorry, "+pc.name+
".",self);
goto giveback;
}

          :brief:
exec("say What do you want engraved on this "+ting.name+", "+pc.name+
"?",self);
exec("say Just say the line, and remember, maximum 10 letters!",self);
          :brieftext:
wait(SFB_DONE, command("say")and(activator == pc));
text := argument;
if(length(text) > 10)
{
exec("say I am sorry, but this is too long!",self);
exec("say Try another one, 10 letters maximum.",self);
goto brieftext;
}

exec("say An engraving saying: '"+text+"', yes?",self);

wait(SFB_DONE,(command("say") or command("nod")or
command("shake"))and(activator == pc));

if((command("say")and((" " + argument)in "no"))
or command("shake"))
{
exec("say Oh, what is it then?",self);
goto brieftext;
}

pause;
pris := (5*GOLD_MULT)+((ting.rent)*3);
cash := moneystring(pris,TRUE);
exec("say This engraving will cost you "+cash+".",self);
if(not transfermoney(pc,self,pris))
{
exec("say ...which you don't have apparently.",self);
exec("say Come back when you are richer, "+pc.name+".",self);
goto giveback;
}

ting.title := ting.title+" (engraved: '" + text + "')";
blah := "" in ting.extra;
if(blah)
{
blah.descr := blah.descr + "&n'" + text + "' is engraved on it.";
addextra( ting.extra, {"engraving"}, "It says '" + text + "'" );
}
else
{
addextra(ting.extra,{"dummy"},"You see nothing special.&n'"+text+
"' is engraved on it.");
blah := "dummy" in ting.extra;
substring( blah.names, "dummy" );
/* There was no general description... make a new one :) */

}
pause;
exec("say There, hope you like it, " + pc.name + "!", self);
destroy(self.inside);
goto giveback;


          :nopc:
exec("shrug ",self);
exec("drop "+ting.name,self);
i:=dildestroy("busy@function",self);
unsecure(pc);
unsecure(ting);
goto start;

          :ingenting:
exec("say Huh? Where did that ting go?",self);
I:=dildestroy("busy@function",self);
unsecure(ting);
unsecure(pc);
goto start;

}
dilend



dilbegin resize_func(item1:integer, item2:integer, item3:integer,
                    arm_type:integer, arm_type2:integer,
                    cash:integer, a_name:string);
external
 string accept_dil@function (pc:unitptr,s:string);
var
 mn:string;
 answer:string;
 i:integer;
 amount:integer;
 pc:unitptr;
 size:string;
 tgt:unitptr;
 diff:integer;
code
{
  heartbeat := PULSE_SEC*5;
  :start:
  wait (SFB_DONE,command ("give") and
 (self==target));

  if (not (visible(self, activator)))
  {
     exec("say I can't resize it when I can't see you!.",self);
     exec("drop "+medium.name, self);
     goto start;
  }

  pc := activator;
  secure (pc,lostpc);
  tgt := medium;
  secure (tgt,lostitem);
  dilcopy ("busy@function(Please wait I am busy with other work right now.",
           self);

  if (not (tgt.type&UNIT_ST_OBJ))
  {
     exec ("say I can't resize that, "+pc.name+".",self);
     :giveit:
     link (tgt, pc);
     act ("$2n gives $3n to $1n",
   A_SOMEONE,pc,self,tgt,TO_REST);
     act ("$2n gives $3n to you.",
   A_SOMEONE,pc,self,tgt,TO_CHAR);
     i := dildestroy ("busy@function",self);
     unsecure (pc);
     unsecure (tgt);
     goto start;
  }

  if ("$resize" in tgt.extra)
  {
     exec ("say It cant be resize any more, "+pc.name+".",self);
     goto giveit;
  }

  if ((tgt.objecttype != item1) and
      (tgt.objecttype != item2) and
      (tgt.objecttype != item3))
  {
     exec ("say I can not resize this, I am only a "+a_name+".",self);
     goto giveit;
  }


  if (tgt.objecttype == ITEM_ARMOR)
  {
     if ((tgt.value[0]!=arm_type) and
         (arm_type2!=tgt.value[0]))
     {
        exec ("say I can't resize that I am only a "+a_name+".",self);
        goto giveit;
     }
  }

  amount := (100*tgt.height) / pc.height;
  if (amount > 100)
    diff := amount - 100;
  else
    diff := 100 - amount;

  if (diff==0) goto  no_need;
  i := cash*diff;
  mn := moneystring(i, TRUE);

  exec ("say That will cost "+mn+" to have that resized.",self);

  answer := accept_dil@function(pc, "Do you want this resized or not?");
  pause;

  if (answer=="no")
     goto no;

  if (transfermoney(pc, self, i))
  {
     exec ("resize "+tgt.name+" "+pc.name,self);

     if (not ("$resized" in tgt.extra))
     {
        exec ("say I am sorry, I do not seem to be able to resize this, "+
              "after all I am just a "+a_name+".",self);
        diff := transfermoney(self,pc, i);
        goto giveit;
     }

     exec ("say There you go, thats the best I can do.",self);
     goto giveit;
  }
  else
    goto no_money;

  :no:
  exec ("say Very well then come back when you want me to.",self);
  goto giveit;

  :no_need:
  exec ("say It already fits you. I should charge you for "+
        "waisting my time!",self);
  goto giveit;

  :no_money:
  exec ("say You don't seem to have enough money. Come back when you "+
        "have found enough to pay me.",self);
  goto giveit;

  :lostpc:
  :lostitem:
  i := dildestroy ("busy@function",self);

  unsecure (pc);
  unsecure (tgt);
  goto start;
}
dilend




/* Copy onto the jail, maintainer should be unique */
/* example: jailmaintain("captain@midgaard", "accuse_room@midgaard") */

dilbegin jailmaintain(maintainer : string, inroom : string);
var
 newu : unitptr;
 u : unitptr;
 v : unitptr;
code
{
  :loop:
  wait(SFB_MSG, argument == "jailfood");

  u := findsymbolic(maintainer);

  if (findroom(inroom) == u.outside)
  {
     v := u.inside;

     while (v)
     {
 if ((v.objecttype == ITEM_FOOD) or (v.objecttype == ITEM_DRINKCON))
 {
    /* Give this one to the poor bastard in the cell */
    newu := load(v.nameidx + "@" + v.zoneidx );
    link(newu, self);
    act("The door is opened for a moment, and $2n is pushed in.",
 A_SOMEONE, self.inside, newu, null, TO_ALL);
 }
 v := v.next;
     }
  }
  goto loop;
}
dilend


dilbegin jailstay(du : integer);
var
  i : integer;

code
{
  heartbeat := PULSE_SEC * SECS_PER_MUD_HOUR;
  i := self.outside.idx;

  :loop:
  pause;

  if (i != self.outside.idx)
    quit;

  if ((du % 4) == 0)
    send("jailfood");

  if (du == 24)
  {
     act("At last! The very last day of your term!",
         A_ALWAYS, self, null, null, TO_CHAR);
  }
  else if (du == 12)
  {
     act("Only half a day left 'till your freedom!",
         A_ALWAYS, self, null, null, TO_CHAR);
  }
  else if (du <= 1)
    goto release;
  else
  {
     act("You make another mark on the wall. Only "+itoa(du)+
  " hours till freedom!",
         A_ALWAYS, self, null, null, TO_CHAR);
  }

  du := du - 1;

  goto loop;


  /* Get thrown out of jail */
  :release:

  act("Your term is over! You are thrown out of the jail and sent home.",
      A_ALWAYS, self, null, null, TO_CHAR);
  link(self, findroom(self.hometown));
  self.crimes := self.crimes / 2;
  set(self.charflags, CHAR_PROTECTED);
  unset(self.charflags, CHAR_OUTLAW);
  quit;
}
dilend


dilbegin guard_arrest(office : string, prisoner : unitptr);
external
  unitptr unit_room@function(u : unitptr);

var
 u : unitptr;
 i : integer;
 wasin : string;
code
{
  on_activation((self.position <= POSITION_SLEEPING) or
                (self.position == POSITION_FIGHTING), skip);

  u := unit_room@function(self);
  wasin := u.nameidx + "@" + u.zoneidx;

  heartbeat := PULSE_SEC * 10;

  secure(prisoner, losthim);

  i := 0;

  :loop:

  priority;

  walkto(findroom(office));

  if (i == 0)
    exec("say Got another prisoner, Captain, Sir!", self);
  else if (i == 4)
    exec("cough", self);

  i := i + 1;
  goto loop;

  :losthim:
  walkto(findroom(wasin));
  return;
}
dilend


/* The string office should equal the symbolic reference to where  */
/* prisoners must be brought.                                      */

dilbegin arrest_check(office : string);
external
 guard_arrest(office : string, prisoner : unitptr);
var
 u : unitptr;
code
{
quit;
}
dilend


dilbegin captain(jailname : string);
var
 prisoner : unitptr;
 u : unitptr;
 nextu : unitptr;
 safe : unitptr;
 cuffs : unitptr;
 c : string;

code
{
  heartbeat := PULSE_SEC * 10;

  on_activation((self.position <= POSITION_SLEEPING) or
                (self.position == POSITION_FIGHTING), skip);

  :findsafe:
  walkto(findroom("accuse_room@"+self.zoneidx));
  safe := findunit(self, "safe", FIND_UNIT_SURRO, self);
  if (safe == null)
    safe := self;

  secure(safe, findsafe);

  :loop:
  pause;

  /* See if any prisoner is in this room */
  foreach (UNIT_ST_PC|UNIT_ST_NPC, prisoner)
  {
     cuffs := equipment(prisoner, WEAR_WRIST_R);
     if (cuffs and (cuffs.nameidx == "cuffs") and
                   (cuffs.zoneidx == "midgaard"))
     {
        if (isset(prisoner.charflags, CHAR_OUTLAW))
          goto gotone;
     }
  }

  goto loop;

  :gotone:
  u := prisoner.inside;

  while (u)
  {
     nextu := u.next;

   
     if (visible (self,u) )
        link(u, safe);
     u := nextu;
  }

  if (safe == null)
  {
     act("$1n takes all $3n's possesions.",
  A_SOMEONE, self, null, prisoner, TO_NOTVICT);
     act("$1n takes all your possesions.",
  A_SOMEONE, self, null, prisoner, TO_VICT);
  }
  else
  {
     act("$1n puts all $3n's possesions in $2n.",
  A_SOMEONE, self, safe, prisoner, TO_NOTVICT);
     act("$1n puts all your possesions in $2n.",
  A_SOMEONE, self, safe, prisoner, TO_VICT);
  }

  act("$3n opens the jail door, and pushes $1n through.",
      A_SOMEONE, prisoner, null, self, TO_NOTVICT);
  act("You are pushed into the jail by $3n.",
      A_SOMEONE, prisoner, null, self, TO_CHAR);

  dilcopy("jailstay@midgaard(12)", prisoner);

  /* Arrested players are wanted dead while in prison */
  unset(prisoner.charflags, CHAR_PROTECTED);
  set(prisoner.charflags, CHAR_OUTLAW);

  link(prisoner, findroom(jailname));

  goto loop;
}
dilend


dilbegin aware cuffed(depname : string);
var
  cuffs  : unitptr;
  deputy : unitptr;
  i      : integer;
code
{
  cuffs := equipment(self, WEAR_WRIST_R);
  secure(cuffs, broken);

  deputy := self.master;
  secure(deputy, broken);

  if ((deputy == null) or (cuffs == null))
  {
     log("Cuffed lost either deputy or cuffs");
     goto broken;
  }

  heartbeat := PULSE_SEC * 1;

  :loop:
  if (cuffs.equip != WEAR_WRIST_R)
    goto broken;
  priority;
  wait(SFB_TICK, activator == self);
  goto loop;

  :broken:
  i := dildestroy("cuffed2@midgaard", self);
  quit;
}
dilend



dilbegin aware cuffed2(depname : string);
var
  i      : integer;
  u      : unitptr;
code
{
  interrupt(SFB_COM, activator == self, broken);
  :loop:
  wait(SFB_CMD, TRUE);
  :postloop:

  if (activator == self.master)
  {
     if (activator.position < POSITION_STANDING)
       goto loop;

     /* Do this trickery to allow the cuffed person to follow! */

     if (command("north") or command("east") or command("south") or
  command("west") or command("up") or command("down"))
     {
 wait(SFB_CMD, TRUE);
        if (activator == self)
 {
    if (command("north") or command("east") or
 command("south") or command("west") or
 command("up") or command("down"))
    {
       goto loop;
    }
 }
 goto postloop;
     }
     goto loop;
  }
  else if (activator == self)
  {
     if (command("look") or command("say") or
  command("ask") or command("tell"))
       goto loop;
     else
     {
 block;
 act(depname + " prevents you from removing the hand cuffs.",
     A_ALWAYS, self, null, null, TO_CHAR);
     }
  }
  goto loop;

  :broken:
  i := dildestroy("cuffed@midgaard", self);
  quit;
}
dilend



dilbegin fido();
var
 i : unitptr;

code
{
  on_activation(self.position <= POSITION_SLEEPING, skip);

  heartbeat := PULSE_SEC*15;

  :loop:
  pause;

  foreach (UNIT_ST_PC | UNIT_ST_NPC | UNIT_ST_OBJ, i)
  {
     if (i != self)
     {
 if (i.type == UNIT_ST_OBJ)
 {
    if ((i.objecttype == ITEM_CONTAINER) and isaff(i, ID_CORPSE))
    {
       act("$1n savagely devour $2n.",
    A_SOMEONE, self, i, null, TO_ROOM);

       while (i.inside)
  link(i.inside, i.outside);

       destroy(i);
       goto loop;
    }
 }
 else if (rnd(0,1000) == 0)  /* Make it RARE */
 {
    on rnd(1,3) goto c1, c2, c3;

    :c1:
    exec("fart", self);
    goto loop;

    :c2:
    exec("drool", self);
    goto loop;

    :c3:
    act("$1n wets on $3n.",
 A_SOMEONE, self, null, i, TO_NOTVICT);
    act("$1n wets on you! Eeewww!",
 A_SOMEONE, self, null, i, TO_VICT);
    goto loop;
 }
     }
  }
}
dilend


dilbegin herb(s : string);
var
 i : integer;
code
{
  :start:
  wait(SFB_CMD, command("eat") and
(activator.position >= POSITION_RESTING));

  if (findunit(activator, argument, FIND_UNIT_INVEN, null) != self)
     goto start;

  act("You eat $2n.", A_HIDEINV, activator, self, null, TO_CHAR);
  act("$1n eats $2n.", A_HIDEINV, activator, self, null, TO_ROOM);
  dilcopy(s, activator);
  block;
  destroy(self);
}
dilend



/* Recall the program counter when the program is saved & loaded */
dilbegin recall aware ns_berries();
var
  intridx : integer;

code
{
  intridx := interrupt(SFB_CMD, command("puke"), the_end);

  heartbeat := PULSE_SEC * 15;

  act("The nightshade berries has a bitter taste.",
      A_ALWAYS, self, null, null, TO_CHAR);
  pause;

  act("Your stomach starts to rumble...",
      A_ALWAYS, self, null, null, TO_CHAR);
  pause;

  act("A warm feeling spreads through your body.",
      A_ALWAYS, self, null, null, TO_CHAR);
  pause;

  act("You feel psychotic!",
      A_ALWAYS, self, null, null, TO_CHAR);
  pause;

  :the_end:
  clear(intridx);
  pause;
  act("You feel a little better.",
      A_ALWAYS, self, null, null, TO_CHAR);
  quit;
}
dilend

%rooms

// Space lent to Dariya

 jandump
title "The Grunting Janitor"
descr
"This room is full of various goods. The items lay strewn about on the
ground, or placed on some of the numerous tables in the room. The
janitors deposit all of the goodies they find in this room. If someone
has lost a precious item, surely this would be the place to check for
it. There is a small room in the back, where those in need can get a
free meal."

east to royal_av1@midgaard descr "Royal Avenue lies to the east of this room.";
movement SECT_CITY
flags {UNIT_FL_NO_MOB, UNIT_FL_NO_BURY, UNIT_FL_NO_TELEPORT,
UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
ALWAYS_LIGHT
end

 jandump2

names {"Odin Saves", "back room", "room"}
title "Odin Saves"
descr
"This room has many shelves and cupboards. Giving a quick glance about
reveals that this is a food pantry. Many homeless and hungry people stop
by here daily to recive a free handout of food and drink. Sometimes
wealthy travelers will leave food here for the less fortunate."
movement SECT_CITY
flags {UNIT_FL_NO_MOB, UNIT_FL_NO_BURY, UNIT_FL_NO_TELEPORT,
UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
in jandump
ALWAYS_LIGHT

/*
dilbegin bums_only();
var
item : unitptr;
pc   : unitptr;
code
{
  :start:
wait(SFB_PRE, command("get"));
item := target;
pc := activator;

if(target.outside == self)
 {
 if(((item.objecttype == ITEM_FOOD) or (item.objecttype ==
ITEM_DRINKCON)) and (pc.level > 20))
  {
  act("Your can't bring yourself to take from the needy.",
   A_ALWAYS, pc, null, null, TO_CHAR);
  exec("drop "+item.name, pc);
  }
 }
goto start;
}
dilend
*/
end

// End of Dariya's space


wand_shop
names {"randall's shop","randalls shop","randall shop"}
title "Randall's Shop of Wand and Stave Recharging"
descr
"The shop is filled with small wands and staves everywhere.  Many of them
appear to be burned out or broken.  The building is quite sturdy and looks to
be in good repair, despite a few charred spots on the walls.  A sign on the
back wall catches your attention."
extra {"sign"}
"Wands and Staves recharged!  Simply give the staff or wand to Randall and
he will take care of it!"
movement SECT_INSIDE
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
east to col_rd5 descr "Colosseum Road";
end /* randall's shop */



                       stable2

title "The Stable"
names {"stable"}
descr
"You are standing in the stables which serve Midgaard.
Various items of tack line the walls, while brightly
polished saddles sit on large racks.  You seem to sense
the overpowering stench of something that doesn't exactly
smell like hay.  The building has a sloped roof, and there
are large doorways leading to the north, south, and east."

extra {"stables"}
"These stables house the finest warhorses of Midgaard."
extra {"tack", "saddles"}
"These items look to be owned by the stable."
extra {"racks"}
"These racks hold the saddles."
extra {"roof"}
"This heavy timbered roof look to be constructed of oak
beams."
extra {"door", "doors", "doorways"}
"These doorways look to be large enough to allow the passage
of a massive stud."

flags {UNIT_FL_NO_WEATHER}

movement SECT_CITY
south to tack_shop2 descr
"The Tack Shop";
east to wall_rd10 descr
"Wall Road";
north to stall2 descr
"Stalls";
end


                      tack_shop2

title "The Tack Shop"
names {"tack shop"}
descr
"It is in this store that you may buy the various items
needed to care for and ride your horse.  A large assortment
of bridles, saddles, and other care items line hooks and
shelves along the walls.  There is a doorway leading to the
main stables to the north."

extra {"bridles", "saddles"}
"These were made by Myrna the leather worker."
extra {"care items"}
"Everything to make your horse happy."
extra {"hook"}
"OOHHH, sharp."
extra {"shelves"}
"OOHHH, flat and made of oak."
extra {"door", "doors", "doorway"}
"Looks big enough to fit your stud."

flags {UNIT_FL_NO_WEATHER}

movement SECT_CITY
north to stable2 descr
"The Stable";
end

                      stall2

title "The stalls"
names {"stalls"}
descr
"You are standing in a room with many doors.  This is the part of
the stables which houses the horses."
extra {"doors"}
"These doors appear to be very sturdy."
flags {UNIT_FL_NO_WEATHER}

movement SECT_CITY
south to stable2 descr
"The Stable";
end



/* Mads, s|g efter XXX */

/* ---------------- Roads and Squares in Midgaard ---------------- */

/* -------------------------- Wall Road -------------------------- */

                             wall_rd1

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the east side of the
city wall.  To your north, the West Bridge of Midgaard spans the river, and
to your east, the Southern Promenade leads along the river bank."
movement SECT_CITY
north to west_bridge;
east to s_prom1;
south to wall_rd2;
ALWAYS_LIGHT
end

                             wall_rd2

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the western city wall.
Gladiator Road leads east from here, and at its end you can barely make out
a large oval building."
movement SECT_CITY
north to wall_rd1;
east to glad_rd1;
south to wall_rd3;
ALWAYS_LIGHT
end

                             wall_rd3

names {"wall road"}
title "Wall Road"
descr
"   You are by the south west tower of the Midgaard city wall.  Wall Road
leads north and east, and a heavy-looking metal door leads south into the
tower."
movement SECT_CITY
north to wall_rd2;
east to wall_rd4;
south to sorcerer/ent_tower open {EX_OPEN_CLOSE, EX_CLOSED}
     keyword {"oak door", "door"};
/* There are doors like this at wall_rd6, wall_rd11 og wall_rd14.
* They lead into the wall, and to a potential new area.
*/
extra {"door", "metal"} "It looks solid and appears to be securely locked."
ALWAYS_LIGHT
end


                             wall_rd4

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running east-west along the southern city wall.
The rather wide Colosseum Road leads north from here, and at its end you can
barely make out a large oval building."
movement SECT_CITY
north to col_rd5;
east to in_sgate;
west to wall_rd3;
ALWAYS_LIGHT
end

                             wall_rd5

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running east-west along the southern city wall.
A road flanked by slender beeches leads north from here, and a street sign by
the neares beech says `Park Road'."
movement SECT_CITY
north to park_rd5;
east to wall_rd6;
west to in_sgate;
extra {"sign"}
"It is an ordinary street sign."
ALWAYS_LIGHT
end


                             wall_rd6

names {"wall road"}
title "Wall Road"
descr
"   You are by the south east tower of the Midgaard city wall.  Wall Road
leads north and west, and a heavy-looking oaken door leads south into the
tower."
movement SECT_CITY
north to wall_rd7;
west to wall_rd5;
south to midwalls/rn_015 open {EX_OPEN_CLOSE, EX_CLOSED}
     keyword {"oak door", "door"};
extra {"oaken door","door", "oak"} "It looks to be crafted of solid oak,
and banded with iron."
ALWAYS_LIGHT
end


                             wall_rd7

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the eastern city wall.
A rather small street called Elm Street leads west from here."
movement SECT_CITY
north to wall_rd8;
west to elm_street2;
south to wall_rd6;
ALWAYS_LIGHT
end


                             wall_rd8

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the eastern city wall.
To your north, the East Bridge of Midgaard spans the river, and to your west,
the Southern Promenade leads along the river bank."
movement SECT_CITY
north to east_bridge;
west to s_prom6;
south to wall_rd7;
ALWAYS_LIGHT
end


                             wall_rd9

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the eastern city wall.
To your south, the East Bridge of Midgaard spans the river, and to your west,
the Northern Promenade leads along the river bank."
movement SECT_CITY
north to in_egate;
west to n_prom3;
south to east_bridge;
ALWAYS_LIGHT
end

                             wall_rd10

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the eastern city wall.
There is a stable to the west."
movement SECT_CITY
north to wall_rd11;
south to in_egate;
west to stable2;
ALWAYS_LIGHT

end


                             wall_rd11

names {"wall road"}
title "Wall Road"
descr
"   You are by the northeast tower of the Midgaard city wall.  Wall Road
leads south and west, and a heavy-looking oaken door leads north into the
tower."
movement SECT_CITY
west to wall_rd12;
south to wall_rd10;
north to midwalls/rn_010 open {EX_OPEN_CLOSE, EX_CLOSED}
     keyword {"oak door", "door"};

extra {"oaken door","door", "oak"} "It looks to be crafted of solid oak,
and banded with iron."
ALWAYS_LIGHT
end


                             wall_rd12

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running east-west along the eastern city wall.
A narrow street paved with cobblestones leads south.  A street sign nearby
says `Tailor Street'."
movement SECT_CITY
west to in_ngate;
east to wall_rd11;
south to tailor_st2;
ALWAYS_LIGHT
end


                             wall_rd13

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running east-west along the eastern city wall.
A narrow street paved with cobblestones leads south.  A street sign nearby
says `Baker Street'."
movement SECT_CITY
east to in_ngate;
west to wall_rd14;
south to baker_st2;
ALWAYS_LIGHT
end


                             wall_rd14

names {"wall road"}
title "Wall Road"
descr
"   You are by the north west tower of the Midgaard city wall.  Wall Road
leads south and east, and a heavy-looking oaken door leads north into the
tower."
movement SECT_CITY
east to wall_rd13;
south to wall_rd15;
north to midwalls/rn_005 open {EX_OPEN_CLOSE, EX_CLOSED}
     keyword {"oak door", "door"};
extra {"oaken door","door", "oak"} "It looks to be crafted of solid oak,
and banded with iron."
ALWAYS_LIGHT
end

                             wall_rd15

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the western city wall."
movement SECT_CITY
north to wall_rd14;
south to in_wgate;
ALWAYS_LIGHT
end

                             wall_rd16

names {"wall road"}
title "Wall Road"
descr
"   You are on a long road running north-south along the western city wall.
The West Bridge of Midgaard spans the river to the south, and a small road
leads east along the river bank towards the wharves."
movement SECT_CITY
east to wharf1;
north to in_wgate;
south to west_bridge;
ALWAYS_LIGHT
end


/* ------------------------ Tailor Street ------------------------ */

                             tailor_st1

names {"tailor street"}
title "Tailor Street"
descr
"   You are on a narrow street paved with cobblestones.  The street leads
north and south.  To your east is a small shop with a large pair of scissors
hanging outside."
movement SECT_CITY
north to tailor_st2;
south to main_st5;
east to tailor_shop;
west to cth_square2;
ALWAYS_LIGHT
end

                             tailor_st2

names {"tailor street"}
title "Tailor Street"
descr
"   You are on a narrow street paved with cobblestones.  The street leads
north and south. To your east is the Magic Shop."
movement SECT_CITY
north to wall_rd12;
south to tailor_st1;
east to magic_shop;
ALWAYS_LIGHT
end

                             tailor_st3

names {"tailor street"}
title "Tailor Street"
descr
"   You are on a narrow street paved with cobblestones.  The street leads
north and south.  To the west is a building with a large coach horn hanging
outside and a sign saying `Post Office'."
movement SECT_CITY
north to main_st5;
south to n_prom2;
east to engraver_shop descr "A small engraver workshop is to the east.";
west to post_office;
ALWAYS_LIGHT
end


/* ------------------------ Baker Street ------------------------ */

                             baker_st1

names {"baker street"}
title "Baker Street"
descr
"   You are outside a shady-looking tavern.  The sign above the darkened
windows say `The Grubby Inn'.  The tavern door is to the west, and a small
alley leads east to Cathedral Square.  Baker Street continues north and
south."
movement SECT_CITY
north to baker_st2;
south to main_st2;
east to cth_square8;
west to grub_inn;
ALWAYS_LIGHT
end


                             baker_st2
names {"baker street"}
title "Baker Street"
descr
"   The street continues north and south."
movement SECT_CITY
north to wall_rd13;
south to baker_st1;
ALWAYS_LIGHT
end

                             cth_road

names {"cathedral road"}
title "Cathedral Road"
descr
"   You are on a small, paved road leading north towards the city gate and
south towards Cathedral Square."
movement SECT_CITY
north to in_ngate;
south to cth_square5;
ALWAYS_LIGHT
end


/* ------------------------ Cathedral Square ------------------------ */

                             cth_square1

names {"cathedral square"}
title "Cathedral Square"
descr
"   You are at the entrance of the great Cathedral of Midgaard.  Its massive
southern twin towers rise high above you.  You can go east and west around
the immense church, or south to the Market Square."
movement SECT_CITY
north to cth_entrance;
/* Her skal være et par "huge bronze doors", der kan åbnes og lukkes. */
south to market_sq;
east to cth_square2;
west to cth_square8;
ALWAYS_LIGHT
end


                             cth_square2

names {"cathedral square"}
title "By the southeast tower of the Cathedral"
descr
"   You are in the southeast corner of Cathedral Square.  The great grey
tower looms above you.  You can go north and west around the church, and a
small alley to Tailor Street leads east from here."
movement SECT_CITY
north to cth_square3;
east to tailor_st1;
west to cth_square1;
ALWAYS_LIGHT
end


                             cth_square3

names {"cathedral square"}
title "On the east side of the Cathedral"
descr
"   You are by the east wall of the Cathedral.  The massive grey wall is
contrasted by the bright colours of numerous tall mosaic windows.  The
School of Magic is to the east, and you can go north and south along the
church wall."
movement SECT_CITY
north to cth_square4;
south to cth_square2;
east to mag_yard;
ALWAYS_LIGHT
end


                             cth_square4

names {"cathedral square"}
title "Northeast of the Cathedral"
descr
"    You are in the northeast corner of Cathedral Square.  The massive grey
church wall is to the southwest.  You can go south and west around the
church."
movement SECT_CITY
west to cth_square5;
south to cth_square3;
ALWAYS_LIGHT
end


                             cth_square5

names {"cathedral square"}
title "North of the Cathedral"
descr
"   You are in the north end of Cathedral Square.  To your south, the north
tower of the church rises high above you, a large bell hanging near its top.
Cathedral Road leads north, and you can go east and west around the church."
movement SECT_CITY
north to cth_road;
east to cth_square4;
west to cth_square6;
ALWAYS_LIGHT
end

                             cth_square6

names {"cathedral square"}
title "Northwest of the Cathedral"
descr
"    You are in the northwest corner of Cathedral Square.  The massive grey
church wall is to the southeast.  You can go south and east around the
church."
movement SECT_CITY
south to cth_square7;
east to cth_square5;
ALWAYS_LIGHT
end


                             cth_square7

names {"cathedral square"}
title "On the west side of the Cathedral"
descr
"   You are by the west wall of the Cathedral.  The massive grey wall is
contrasted by the bright colours of numerous tall mosaic windows.  The
monastery gate is to the west, and you can go north and south along the
church wall."
movement SECT_CITY
north to cth_square6;
south to cth_square8;
west to paladin_guild/mon_yard;
ALWAYS_LIGHT
end


                             cth_square8

names {"cathedral square"}
title "By the southwest tower of the Cathedral"
descr
"   You are in the southwest corner of Cathedral Square.  The great grey
tower looms above you.  You can go north and east around the church, and a
small alley to Baker Street leads west from here."
movement SECT_CITY
north to cth_square7;
east to cth_square1;
west to baker_st1;
ALWAYS_LIGHT
end


/* -------------------------- The City Gates -------------------------- */

                             in_wgate

names {"inside", "west gate"}
title "Inside the West Gate of Midgaard"
descr
"   Two small towers have been built into the city wall to the west and
connected with a footbridge across a heavy wooden gate.  Main Street leads
east into the city and Wall Road leads north and south along the city wall."
movement SECT_CITY
west to rn_002;
east to main_st1;
north to wall_rd15;
south to wall_rd16;
extra {"bridge","footbridge"}
"It is too high up to reach but it looks as if one easily could walk across it
from one tower to the other."
extra {"gate"}
"It is a set of very big double doors made from hard wood, that has been
reinforced with large iron bands to make it even more sturdy.  One of the
doors is equipped with a very big lock."
extra {"tower","towers"}
"Both of the towers are built from large grey rocks that have been fastened to
each other with some kind of mortar, just like the city wall."
extra {"wall"}
"It is built from large grey rocks that have been fastened to each other with
some kind of mortar.  It is far too high to climb."
ALWAYS_LIGHT
end


   rn_001
title "West Bridge"
descr
"This is the massive oaken west bridge of Midgaard.  It is well
worn from the ages, and spans twenty feet across a great dry moat.
Two immense chains run to the end of this bridge, issuing from holes on the
front of each gate tower.  To the  east are the eastern gates of
Midgaard, while a path to the west leads through the Cypress forest."
extra {"oaken bridge", "west bridge", "bridge"}
"This gigantic bridge looks to be as strong as the walls of Midgaard,
and was constructed from huge trees of Haon dor."
extra {"dry moat", "moat"}
"This moat is quite deep, and looks to be relatively free of debris,
speaking for a moat of course."
extra {"immense chain", "chains"}
"These chains were forged by the dwarves of the arctic wasteland,
and were well worth the cost spent to manufacture them."
extra {"eastern gatehouse", "gate tower", "gatehouse"}
"These massive structures stand guard over the gates of Midgaard"
extra {"path"}
"This path leads into the Cypress Forest."


movement SECT_CITY
west to out_wgate@cypress;
east to rn_002
descr "Inside the Western Gate";

end

  rn_002

title "Inside the Western Gate"
descr
"Looking upwards in this massive gatehouse, there are murder holes in
the ceiling.  Arrow loops line the walls, while the walls themselves
are constructed of gargantuan stone blocks.  There are doorways in the
northern and southern walls, leading into their resective gate towers.
The gatehouse is adorned with two portcullises, and a set of oaken doors.
To the west is the drawbridge, and eastward enters into
Midgaard proper."
extra {"massive gatehouse", "gate tower","gatehouse"}
"This gatehouse was built to protect the entrance to the city of
Midgaard."
extra {"murder holes", "holes"}
"In the event that attackers breach the gates, boiling oil can be
poured down on them from above."
extra {"arrow loops", "loops"}
"From these narrow slots in the walls, can be fired arrows at any attackers
who might be able to breach the gates."
extra {"doorways"}
"These doorways lead into the two gatehouses."
extra {"walls"}
"These walls were built from stone quarried south of Midgaard."
extra {"portcullises"}
"These massive iron gates can be dropped from above to trap intruders
within the gate house"
extra {"oaken doors"}
"These oaken doors are banded with iron, and were constructed from the
trees of Haon dor."
extra {"drawbridge"}
"The drawbridge can be raised in case of attack."
extra {"midgaard proper", "midgaard"}
"The fair city of Midgaard, home of the Royal castle."

flags {UNIT_FL_INDOORS, UNIT_FL_NO_WEATHER}

movement SECT_CITY
west to rn_001
descr "West Bridge";
east to in_wgate;
north to rn_003@midwalls open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
south to rn_004@midwalls open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
end


  rn_012

title "Inside the Eastern Gate"
descr
"Two large murder holes are cut into the ceiling of the easten gatehouse.
Arrow loops line the walls,  and the gargantuan stone blocks of the structure are quite impressive.  There are doorways in the northern and southern walls, leading into
the two gate towers.  The gatehouse is adorned with two portcullises, and a set of oaken doors.
The drawbridge spans the moat the east, the gate opens into Midgaard proper to the west."
extra {"massive gatehouse", "gatehouse"}
"This gatehouse was built to protect the entrance to the city of
Midgaard."
extra {"murder holes", "holes", "roof"}
"In the event that attackers breach the gates, boiling oil can be
poured down on them from above."
extra {"arrow loops", "loops"}
"From these narrow slots in the walls, can be fired arrows at any attackers
who might be able to breach the gates."
extra {"gate towers", "doorways", "towers"}
"These doorways lead into the two gate towers."
extra {"walls"}
"These walls were built from stone quarried south of Midgaard."
extra {"portcullises"}
"These massive iron gates can be dropped from above to trap intruders within
the gate house."
extra {"oaken doors", "doors"}
"These oaken doors are banded with iron, and were constructed from the
trees of Haon dor."
extra {"drawbridge"}
"The drawbridge can be raised in case of attack."
extra {"midgaard proper", "midgaard"}
"The fair city of Midgaard, home of the Royal castle."

flags {UNIT_FL_INDOORS, UNIT_FL_NO_WEATHER}

movement SECT_CITY
west to in_egate;
east to rn_013
descr "East Bridge";
north to rn_011@midwalls open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
south to rn_014@midwalls open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
end

  rn_013

title "East Bridge"
descr
"The massive oaken bridge of the eastern gate creaks loadly.
It is well worn from the ages, and spans twenty feet across the gulf below.
The moat here is filled with what appears to be a brown, murky
substance.  Two immense chains run to the end of this bridge,
issuing from holes on the front of each gate tower.
To the west is the eastern gate of
Midgaard, and the Kings Road leads to the east."
extra {"oaken bridge", "east bridge", "bridge"}
"This gigantic bridge looks to be as strong as the walls of Midgaard,
and was constructed from huge trees of Haon dor."
extra {"brown substance", "murky substance", "substance","dry moat", "moat",
"gulf"}
"This moat is quite deep, and you can now see that the murky substance
looks to be some sort of excretion."
extra {"immense chains", "chains"}
"These chains were forged by the dwarves of the arctic wasteland,
and were well worth the cost spent to manufacture them."
extra {"northern gatehouse", "gatehouse"}
"These massive structures stand guard over the gates of Midgaard"
extra {"kings road", "road"}
"This highway was constructed to allow the movement of large armies."


movement SECT_CITY
east to out_egate@ratswarf;
west to rn_012
descr "Inside the Eastern Gate";
end



                             in_egate

names {"inside", "east gate"}
title "Inside the East Gate of Midgaard"
descr
"   Two small towers have been built into the city wall to the east and
connected with a footbridge across a heavy wooden gate.  Main Street leads
west into the city and Wall Road leads north and south along the city wall."
movement SECT_CITY
east to rn_012;
west to main_st6;
north to wall_rd10;
south to wall_rd9;
extra {"bridge","footbridge"}
"It is too high up to reach but it looks as if one easily could walk across it
from one tower to the other."
extra {"gate"}
"It is a set of very big double doors made from hard wood, that has been
reinforced with large iron bands to make it even more sturdy.  One of the
doors is equipped with a very big lock."
extra {"tower","towers"}
"Both of the towers are built from large grey rocks that have been fastened to
each other with some kind of mortar, just like the city wall."
extra {"wall"}
"It is built from large grey rocks that have been fastened to each other with
some kind of mortar.  It is far too high to climb."
ALWAYS_LIGHT
end
  rn_017

title "Inside the Southern Gate"
descr
"Looking upwards in this massive gatehouse,  the leering eyes of the murder
holes are the most prominent feature.  They are by far the most deadly
feature, serving but one purpose.
The walls are constructed of huge granite blocks, and are lined with arrow
loops.  There are doorways in the
eastern and western walls, leading into the two gate towers.
The gatehouse is adorned with two portcullises, and a set of oaken doors.
Passage to the south over the drawbridge is possible, or travel northward into
Midgaard proper can be undertook."
extra {"massive gatehouse", "gatehouse"}
"This gatehouse was built to protect the entrance to the city of
Midgaard."
extra {"murder holes", "holes"}
"In the event that attackers breach the gates, boiling oil can be
poured down on them from above."
extra {"arrow loops", "loops"}
"From these narrow slots in the walls, can be fired arrows at any attackers
who might be able to breach the gates."
extra {"doorways"}
"These doorways lead into the two gate towers."
extra {"walls"}
"These walls were built from stone quarried south of Midgaard."
extra {"portcullises"}
"These massive iron gates can be dropped from above to trap intruders within
the gate house"
extra {"oaken doors", "doors"}
"These oaken doors are banded with iron, and were constructed from the
trees of Haon dor."
extra {"drawbridge"}
"The drawbridge can be raised in case of attack."
extra {"midgaard proper", "midgaard"}
"The fair city of Midgaard, home of the Royal castle."
extra {"granite blocks", "granite", "blocks"}
"These blocks were quarried to the south of Midgaard."
flags {UNIT_FL_INDOORS, UNIT_FL_NO_WEATHER}

movement SECT_CITY
west to rn_019@midwalls open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
east to rn_016@midwalls  open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
south to rn_018
descr "South Bridge";
north to in_sgate;
end
  rn_018
title "South Bridge"
descr
"The oaken bridge of Midgaard is quite a sight to see, and can be
raised in case of attack.  It is banded with iron, and not even the most
heavily shod horses can put a dent in it. Two immense chains run to the
end of this bridge, issuing from holes on the front of each gate tower.
To the north is the southern gate of Midgaard"
extra {"bands", "iron"}
"This iron serves to reinforce the bridge."
extra {"oaken bridge", "south bridge", "bridge"}
"This gigantic bridge looks to be as strong as the walls of Midgaard,
and was constructed from huge trees of Haon dor."
extra {"dry moat","moat"}
"This moat is quite deep, and looks to be relatively free of debris,
speaking for a moat of course."
extra {"immense chain", "chains"}
"These chains were forged by the dwarves of the arctic wasteland,
and were well worth the cost spent to manufacture them."
extra {"northern gatehouse", "gate tower", "gatehouse", "towers"}
"These massive structures stand guard over the gates of Midgaard"
extra {"path"}
"This path leads into the forest."


movement SECT_CITY
north to rn_017
descr "Inside the Southern Gate";

end


                             in_sgate

names {"inside", "south gate"}
title "Inside the South Gate of Midgaard"
descr
"   Two small towers have been built into the city wall to the west and
connected with a footbridge across a heavy wooden gate.  Palace Road leads
north into the city and Wall Road leads east and west along the city wall."
movement SECT_CITY
west to wall_rd4;
east to wall_rd5;
south to rn_017;
north to palace_rd8;
extra {"bridge","footbridge"}
"It is too high up to reach but it looks as if one easily could walk across it
from one tower to the other."
extra {"gate"}
"It is a set of very big double doors made from hard wood, that has been
reinforced with large iron bands to make it even more sturdy.  One of the
doors is equipped with a very big lock."
extra {"tower","towers"}
"Both of the towers are built from large grey rocks that have been fastened to
each other with some kind of mortar, just like the city wall."
extra {"wall"}
"It is built from large grey rocks that have been fastened to each other with
some kind of mortar.  It is far too high to climb."
ALWAYS_LIGHT
end
  rn_007

title "North Bridge"
descr
"This is the massive oaken north bridge of Midgaard.  It is well
worn from the ages, and looking down you can see that a fair amount of trash has
been thrown into the moat.  Two immense chains run to the end of
this bridge, issuing from holes on the front of each gate tower.  To the
south is the northern gate of Midgaard, while a path to the north leads
through the Moor."
extra {"oaken bridge", "north bridge", "bridge"}
"This gigantic bridge looks to be as strong as the walls of Midgaard,
and was constructed from huge trees of Haon dor."
extra {"dry moat","trash", "moat"}
"Into the moat has been thrown a wide variety of items ranging from
swords to wrent suits of plate mail."
extra {"immense chain", "chains"}
"These chains were forged by the dwarves of the arctic wasteland,
and were well worth the cost spent to manufacture them."
extra {"northern gatehouse", "gate tower", "gatehouse", "tower"}
"These massive structures stand guard over the gates of Midgaard"
extra {"path"}
"This path leads into the Cypress Forest."


movement SECT_CITY
south to rn_008
descr "Inside the Northern Gate";
end

  rn_008

title "Inside the Northern Gate"
descr
"At the peak of the roof in this massive gatehouse are large murder holes.
Arrow loops line the walls, and the walls
are constructed of ageless stone blocks.  There are doorways in the
eastern and western walls, which open into the two gate towers.
The gatehouse is adorned with two portcullises, and a set of oaken doors.
Over the drawbridge is a road leading north, or travel southward into
Midgaard proper is possible."
extra {"ageless stone blocks", "stone blocks", "blocks","stone"}
"The stone blocks were quarried to the south of Midgaard."
extra {"massive gatehouse", "gate tower", "gatehouse", "tower"}
"This gatehouse was built to protect the entrance to the city of
Midgaard."
extra {"murder holes", "holes"}
"In the event that attackers breach the gates, boiling oil can be
poured down on them from above."
extra {"arrow loops", "loops"}
"From these narrow slots in the walls, can be fired arrows at any attackers
who might be able to breach the gates."
extra {"gatehouse towers", "doorways", "towers"}
"These doorways lead into the two gatehouse towers."
extra {"walls"}
"These walls were built from stone quarried south of Midgaard."
extra {"portcullises"}
"These massive iron gates can be dropped from above to trap intruders within
the gate house."
extra {"oaken doors", "doors"}
"These oaken doors are banded with iron, and were constructed from the
trees of Haon dor."
extra {"drawbridge"}
"The drawbridge can be raised in case of attack."
extra {"midgaard proper", "midgaard"}
"The fair city of Midgaard, home of the Royal castle."

flags {UNIT_FL_INDOORS, UNIT_FL_NO_WEATHER}

movement SECT_CITY
west to rn_006@midwalls open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
east to rn_009@midwalls open {EX_OPEN_CLOSE, EX_CLOSED} descr "A large oaken door." keyword {"door"};
north to rn_007
descr "North Bridge";
south to midgaard/in_ngate;
end

                             in_ngate

names {"inside", "north gate"}
title "Inside the North Gate of Midgaard"
descr
"   Two small towers have been built into the city wall to the west and
connected with a footbridge across a heavy wooden gate.  Cathedral Road leads
south into the city and Wall Road leads east and west along the city wall."
movement SECT_CITY
west to wall_rd13;
east to wall_rd12;
south to cth_road;
north to rn_008;
extra {"bridge","footbridge"}
"It is too high up to reach but it looks as if one easily could walk across it
from one tower to the other."
extra {"gate"}
"It is a set of very big double doors made from hard wood, that has been
reinforced with large iron bands to make it even more sturdy.  One of the
doors is equipped with a very big lock."
extra {"tower","towers"}
"Both of the towers are built from large grey rocks that have been fastened to
each other with some kind of mortar, just like the city wall."
extra {"wall"}
"It is built from large grey rocks that have been fastened to each other with
some kind of mortar.  It is far too high to climb."
ALWAYS_LIGHT
end


/* ----------------- Market Square and Main Street ------------------- */

                             market_sq

names {"market square"}
title "The Market Square"
descr
"   A huge ancient oak tree stands majestically in the middle of this place.
The Cathedral Square and the great Cathedral of Midgaard is north of here, and
the very broad Royal Avenue leads south through the city.  Main Street leads
east and west."
movement SECT_CITY
north to cth_square1 descr
"The great Cathedral of Midgaard towers proudly beyond Cathedral Square.  The
two massive southern towers reach ambitiously for the sky.";
south to royal_av1 descr
"A long row of well-grown oak trees line each side of Royal Avenue.";
west to main_st3;
east to main_st4;
ALWAYS_LIGHT
end

                             main_st1

names {"main street"}
title "Main Street"
descr
"   You are on a broad street leading east through the City of Midgaard and
west towards the city gate.  A small cage hangs on the front of a small shop
to the north indicating that this is the Pet Shop.  To the south is a shop
with a sign on the front saying `Ironmonger's'."
movement SECT_CITY
north to pet_shop;
south to ironmon_shop;
west to in_wgate;
east to main_st2;
ALWAYS_LIGHT
end

                             main_st2

names {"main street"}
title "Main Street"
descr
"   You are on a broad street leading east-west through the City of Midgaard.
Outside the bakery to the south hangs a large pretzel, and the delicious smell
of newly baked bread emerges from within.  Baker Street leads north from
here."
movement SECT_CITY
north to baker_st1;
south to baker_shop;
east to main_st3;
west to main_st1;
ALWAYS_LIGHT
end

                             main_st3
names {"main street"}
title "Main Street"
descr
"   You are on a broad street leading east-west through the City of Midgaard.
To your north is a rather large stone building, the Town Hall of Midgaard, and
to your south is a shop with a sign reading `Greengrocer's' on the front.
Main Street leads east to the Market Square."
movement SECT_CITY
north to th_entrance;
south to greeng_shop;
east to market_sq;
west to main_st2;
ALWAYS_LIGHT
end


                             main_st4
names {"main street"}
title "Main Street"
descr
"   You are on a broad street leading east-west through the City of Midgaard.
To your north, a solid building made from many stones of various shapes and
sizes bear a sign reading Cityguard Office.  To your south, a tall, grey
tower, with a dark and heavy-looking oak door, rises above your head."
movement SECT_CITY
north to accuse_room;
south to wiz_entrance open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED}
     keyword {"oak door", "door"};
west to market_sq;
east to main_st5;
extra {"oak door", "door"}
"This looks to be an old decaying door."
ALWAYS_LIGHT
end


                             main_st5
names {"main street"}
title "Main Street"
descr
"   You are by a road cross.  The broad Main Street leads east and west, and
the much smaller Tailor Street leads north and south."
movement SECT_CITY
north to tailor_st1;
south to tailor_st3;
west to main_st4;
east to main_st6;
ALWAYS_LIGHT
end


                             main_st6
names {"main street"}
title "Main Street"
descr
"   You are on a broad street leading east-west through the City of Midgaard.
On the front of a small, somewhat humble-looking, shop to the north hangs an
animal hide, indicating that this must be the Leather Worker's, and outside
the Butcher's shop to the south hangs a miniature ox."
movement SECT_CITY
north to leather_shop;
south to butcher_shop;
west to main_st5;
east to in_egate;
ALWAYS_LIGHT
end


/* -------------------------- The Wharves -------------------------- */

                             wharf1

names {"wharves", "wharf"}
title "The Wharf"
descr
"   You are on the north bank of the river.  The bank here is very steep and
has been reinforced with large rocks to make it less fragile.  The wharf
continues east, and a small road leads west towards the city wall.  The boat
shop is to the north."
movement SECT_CITY
north to boat_shop;
west to wall_rd16;
east to wharf2;
ALWAYS_LIGHT
end

                             wharf2

names {"wharves", "wharf"}
title "The Wharf"
descr
"   You are on the north bank of the river.  The bank here has been reinforced
with large rocks.  A sturdy boat bridge spans the rocks to the south, and the
wharf continues east and west.  An old and abandoned-looking warehouse lies
to the north."
movement SECT_CITY
north to warehouse;
south to boat_bridge;
west to wharf1;
east to wharf3;
ALWAYS_LIGHT
end

                             wharf3

names {"wharves", "wharf"}
title "The Wharf"
descr
"   You are on the north bank of the river.  The bank here is very steep
and has been reinforced with large rocks to make it less fragile.  The
wharf continues west, and a small road leads east towards Royal Avenue.
The Fishmonger's is to the north."
movement SECT_CITY
north to fish_shop;
west to wharf2;
east to royal_av2;
ALWAYS_LIGHT
end


                           boat_bridge

names {"boat bridge"}
title "The Boat Bridge"
descr
"   You are on a sturdy boat bridge.  The tiny waves constantly caress the
solid wooden poles.  To your south across the river, you see the Southern
Promenade, and to your north is the wharf."
movement SECT_CITY
north to wharf2;
south to river1;
/* Her skal sidde en "old fisherman"
                med "oilskin waders", "fishing pole" og 3 x "perch" (aborre)
*/
ALWAYS_LIGHT
end
                                 river1

title "On the River in Midgaard"
descr
"   You are on the river in Midgaard just by the boat bridge. What better
place could you find for a landing. The river flows eastwards out of
Midgaard. Upstream, under the city wall, you can reach the cypress
forest."

ALWAYS_LIGHT
movement SECT_WATER_SAIL

north to boat_bridge;
west to cypress/river;

end


/* ----------------------- Northern Promenade ---------------------- */

                             n_prom1

names {"northern promenade"}
title "The Northern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with worn cobble
stones, and a block of old, but well-preserved, two-storey houses
is to the north.  To your south across the river, you see the Southern
Promenade.  The waterfront leads east, and Royal Avenue is to the west."
movement SECT_CITY
west to royal_av2;
east to n_prom2;
ALWAYS_LIGHT
end


                             n_prom2

names {"northern promenade"}
title "The Northern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with worn cobble
stones, and a narrow street called `Tailor Street' leads north.  To your
south across the river, you see the Southern Promenade.  The waterfront
leads east and west."
movement SECT_CITY
north to tailor_st3;
west to n_prom1;
east to n_prom3;
ALWAYS_LIGHT
end


                             n_prom3

names {"northern promenade"}
title "The Northern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with worn cobble
stones, and a block of old, but well-preserved, two-storey houses is to the
north.  To your south across the river, you see the Southern Promenade.  The
waterfront leads west and a small road leads east towards the city wall."
movement SECT_CITY
west to n_prom2;
east to wall_rd9;
ALWAYS_LIGHT
end


/* ----------------------- Royal Avenue ---------------------- */

                             royal_av1

names {"royal avenue"}
title "Royal Avenue"
descr
"   You are on a broad avenue flanked by numerous tall chestnut trees.  The
road is paved with many carefully hewn flagstones.  The avenue leads north to
the market square and south through the city.  The Grunting Boar Inn is to
the east."
movement SECT_CITY
east to grunting_inn;
west to jandump;
north to market_sq;
south to royal_av2;
ALWAYS_LIGHT
end


                             royal_av2

names {"royal avenue"}
title "Royal Avenue"
descr
"   You are on a broad avenue leading north-south through the city.  It is
flanked by numerous tall chestnut trees, and the road is paved with many
carefully hewn flagstones.  The Northern Promenade leads east, and a small
road leads west towards to the wharves.  South, a large stone bridge spans
the river."
movement SECT_CITY
east to n_prom1;
west to wharf3;
north to royal_av1;
south to royal_bridge;
ALWAYS_LIGHT
end



                             royal_av3

names {"royal avenue"}
title "Royal Avenue"
descr
"   You are on a broad avenue leading north-south through the city.  It is
flanked by numerous tall chestnut trees, and the road is paved with many
carefully hewn flagstones.  The Southern Promenade leads east and west.  To
the north, a large stone bridge spans the river."
movement SECT_CITY
east to s_prom4;
west to s_prom3;
north to royal_bridge;
south to royal_av4;
ALWAYS_LIGHT
end


                            royal_av4

names {"royal avenue"}
title "Royal Avenue"
descr
"   You are on a broad avenue leading north-south through the city.  It is
flanked by numerous tall chestnut trees, and the road is paved with many
carefully hewn flagstones."
movement SECT_CITY
north to royal_av3;
south to royal_av5;
ALWAYS_LIGHT
end


                            royal_av5

names {"royal avenue"}
title "Royal Avenue"
descr
"   You are on a broad avenue leading north-south through the city.  It is
flanked by numerous tall chestnut trees, and the road is paved with many
carefully hewn flagstones.  A small street called Penny Lane leads east and
the larger Gladiator Road leads west."
movement SECT_CITY
north to royal_av4;
south to royal_av6;
east to penny_lane1;
west to glad_rd4;
ALWAYS_LIGHT
end


                            royal_av6

names {"royal avenue"}
title "Royal Avenue"
descr
"   You are on a broad avenue leading north through the city and south
towards Palace Square.  It is flanked by numerous tall chestnut trees, and
the road is paved with many carefully hewn flagstones."
movement SECT_CITY
north to royal_av5;
south to palace_sq;
ALWAYS_LIGHT
end

/* ----------------------- The Bridges ---------------------- */

                             royal_bridge

names {"royal bridge", "stone bridge"}
title "The Royal Bridge"
descr
"   You are on a broad stone bridge crossing the river.  The bridge, leading
north and south, is a natural extension of Royal Avenue.  From here, there is
a terrific view of the southern and northern waterfronts, and of the river
itself. It is possible to climb underneath the bridge from here."
movement SECT_CITY
north to royal_av2;
south to royal_av3;

ALWAYS_LIGHT
end


                             west_bridge
names {"west bridge"}
title "On the West Bridge"
descr
"   You are on a stone bridge crossing the river.  The bridge is built near
the western city wall and the river flows west through an opening in the wall
about ten feet below."
movement SECT_CITY
north to wall_rd16;
south to wall_rd1;
ALWAYS_LIGHT
end


                             east_bridge
names {"east bridge"}
title "On the East Bridge"
descr
"   You are on a stone bridge crossing the river.  The bridge is built near
the eastern city wall and the river flows west through an opening in the wall
about ten feet below."
movement SECT_CITY
north to wall_rd9;
south to wall_rd8;
/* Her skal det senere være muligt at hoppe i floden (exit: down) */
ALWAYS_LIGHT
end


/* ----------------------- Southern Promenade ---------------------- */

                             s_prom1

names {"southern promenade"}
title "The Southern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with cobblestones,
and an impenetrable hedge blocks the way southwards.  The promenade leads
east, and Wall Road is to the west.  Across the river, you see the wharves."
movement SECT_CITY
west to wall_rd1;
east to s_prom2;
ALWAYS_LIGHT
end


                             s_prom2

names {"southern promenade"}
title "The Southern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with cobblestones,
and Colosseum Road leads south.  The promenade leads east and west, and
across the river, you see the wharves."
movement SECT_CITY
west to s_prom1;
east to s_prom3;
south to col_rd1;
ALWAYS_LIGHT
end


                             s_prom3

names {"southern promenade"}
title "The Southern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with cobblestones,
and an impenetrable hedge blocks the way southwards.  The promenade leads
west, and Royal Avenue is to the east.  Across the river, you see the
wharves."
movement SECT_CITY
west to s_prom2;
east to royal_av3;
ALWAYS_LIGHT
end


                             s_prom4
names {"southern promenade"}
title "The Southern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with cobblestones,
and an impenetrable hedge blocks the way southwards.  The promenade leads
east, and Royal Avenue is to the west.  Across the river, you see the
northern waterfront."
movement SECT_CITY
west to royal_av3;
east to s_prom5;
ALWAYS_LIGHT
end


                             s_prom5

names {"southern promenade"}
title "The Southern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with cobblestones,
and Park Road leads south.  The promenade leads east and west, and across
the river, you see the northern waterfront."
movement SECT_CITY
west to s_prom4;
east to s_prom6;
south to park_rd1;
ALWAYS_LIGHT
end

                             s_prom6

names {"southern promenade"}
title "The Southern Promenade"
descr
"   You are on the waterfront.  The river bank is paved with cobblestones,
and an impenetrable hedge blocks the way southwards.  The promenade leads
west, and Wall Road is to the east.  Across the river, you see the northern
waterfront."
movement SECT_CITY
west to s_prom5;
east to wall_rd8;
ALWAYS_LIGHT
end


/* -------------------------- Colosseum Road -------------------------- */

                             col_rd1

names {"colosseum road"}
title "Colosseum Road"
descr
"   You are on a narrow road leading north towards the river and south
towards Colosseum Square."
movement SECT_CITY
north to s_prom2;
south to col_sq2;
ALWAYS_LIGHT
end


                             col_rd2

names {"colosseum road"}
title "Colosseum Road"
descr
"   You are on a narrow road leading north towards Colosseum Square and south
through the city."
movement SECT_CITY
north to col_sq6;
south to col_rd3;
ALWAYS_LIGHT
end


                             col_rd3

names {"colosseum road"}
title "Colosseum Road"
descr
"   You are on a narrow road leading north and south through the city.
A small alley leads east to Palace Road."
movement SECT_CITY
north to col_rd2;
south to col_rd4;
east to palace_rd6;
ALWAYS_LIGHT
end


                             col_rd4

names {"colosseum road"}
title "Colosseum Road"
descr
"   You are on a narrow road leading north and south through the city."
movement SECT_CITY
north to col_rd3;
south to col_rd5;
ALWAYS_LIGHT
end


                             col_rd5

names {"colosseum road"}
title "Colosseum Road"
descr
"   You are on a narrow road leading north through the city and south towards
Wall Road."
movement SECT_CITY
north to col_rd4;
south to wall_rd4;
west to wand_shop;
ALWAYS_LIGHT
end

/* -------------------------- Park Road -------------------------- */

                            park_rd1

names {"park road"}
title "Park Road"
descr
"   You are on a road flanked by slender beeches.  The road leads north to
the river and south to the city park."
movement SECT_CITY
north to s_prom5;
south to park1;
flags {UNIT_FL_NO_MOB}
ALWAYS_LIGHT
end


                            park_rd2

names {"park road"}
title "Park Road"
descr
"   You are on a road flanked by slender beeches.  The road leads north to
to the city park and south through the city.  To your east is a rather large
building with a sign saying `Bank' on the front, and westwards is a small
boutique with a pair of scales on a sign saying `Jeweller's'."
movement SECT_CITY
north to park4;
south to park_rd3;
east to bank;
west to jewel_shop;
flags {UNIT_FL_NO_MOB}
ALWAYS_LIGHT
end

                            park_rd3

names {"park road"}
title "Park Road"
descr
"   You are on a road flanked by slender beeches.  The road leads north and
south through the city.  A small alley leads west to Palace Road."
movement SECT_CITY
north to park_rd2;
south to park_rd4;
west to palace_rd2;
ALWAYS_LIGHT
end


                            park_rd4

names {"park road"}
title "Park Road"
descr
"   You are on a road flanked by slender beeches.  The road leads north and
south through the city."
movement SECT_CITY
north to park_rd3;
south to park_rd5;
ALWAYS_LIGHT
end

                            park_rd5

names {"park road"}
title "Park Road"
descr
"   You are on a road flanked by slender beeches.  The road leads north
through the city and south towards Wall Road."
movement SECT_CITY
north to park_rd4;
south to wall_rd5;
ALWAYS_LIGHT
end

/* ------------------ Palace Road and Palace Square ------------------- */

                            palace_sq

names {"palace square"}
title "Palace Square"
descr
"   You are on a square in front of the Palace of Midgaard.  To your south
is a pair of heavy iron gates flanked by a pair of huge bronze lions, green
with verdigris.  The palace garden is surrounded by a thick hawthorn hedge,
and a road paved with reddish brown flagstones leads east and west around it."
extra {"gate", "gates"} "The gates appear to be securely locked."
extra {"lion", "lions"} "They are just lions."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
north to royal_av6;
west to palace_rd7;
east to palace_rd1;
south to kingc/entrance_hall
 keyword {"gate"} open {EX_OPEN_CLOSE, EX_CLOSED};
ALWAYS_LIGHT
end


                            palace_rd1

names {"palace road"}
title "Palace Road"
descr
"   You are on a road paved with reddish brown flagstones.  A thick hawthorn
hedge is to the southwest.  The road leads west towards Palace Square and
south along the hedge."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
west to palace_sq;
south to palace_rd2;
ALWAYS_LIGHT
end


                            palace_rd2

names {"palace road"}
title "Palace Road"
descr
"   You are on a road paved with reddish brown flagstones.  The road leads
north and south along a thick hawthorn hedge to the west.  A small alley
leads east to Park Road."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
north to palace_rd1;
east to park_rd3;
south to palace_rd3;
ALWAYS_LIGHT
end


                            palace_rd3

names {"palace road"}
title "Palace Road"
descr
"   You are on a road paved with reddish brown flagstones.  A thick hawthorn
hedge to the northwest, and the road leads north and west along the hedge."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
west to palace_rd4;
north to palace_rd2;
ALWAYS_LIGHT
end

                            palace_rd4

names {"palace road"}
title "Palace Road"
descr
"   You by a T-junction on the south side of a thick hawthorn hedge.  The road
is paved with reddish brown flagstones and leads east and west along the
hedge and south, away from the hedge."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
west to palace_rd5;
east to palace_rd3;
south to palace_rd8;
ALWAYS_LIGHT
end

                            palace_rd5

names {"palace road"}
title "Palace Road"
descr
"   You are on a road paved with reddish brown flagstones.  A thick hawthorn
hedge is to the northeast, and the road leads north and east along the hedge."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
north to palace_rd6;
east to palace_rd4;
ALWAYS_LIGHT
end

                            palace_rd6

names {"palace road"}
title "Palace Road"
descr
"   You are on a road paved with reddish brown flagstones.  The road leads
north and south along a thick hawthorn hedge to the east.  A small alley
leads west to Colosseum Road."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
west to col_rd3;
south to palace_rd5;
north to palace_rd7;
ALWAYS_LIGHT
end

                            palace_rd7

names {"palace road"}
title "Palace Road"
descr
"   You are on a road paved with reddish brown flagstones.  A thick hawthorn
hedge is to the southeast.  The road leads east towards Palace Square and
south along the hedge."
extra {"hedge", "hawthorn"}
"Its thorns look very pointy and the hedge itself appears quite impenetrable."
movement SECT_CITY
east to palace_sq;
south to palace_rd6;
ALWAYS_LIGHT
end


                            palace_rd8

names {"palace road"}
title "Palace Road"
descr
"   You are on a road paved with reddish brown flagstones.  It leads south
towards the southern city gate and north towards a thick hawthorn hedge."
movement SECT_CITY
north to palace_rd4;
south to in_sgate;
ALWAYS_LIGHT
end


/* ----------------------- Elm Street ----------------------- */

                          elm_street1

names {"elm street"}
title "Elm Street"
descr
"   You are at the west end of Elm Street.  The gate to the city park is to
the west and the street continues east.  An old elm tree grows here."
movement SECT_CITY
extra {"elm tree", "tree"}
"The elm tree looks full of peace and wisdom.  Its leaves move gently in the
wind."
west to park6;
east to elm_street2;
flags {UNIT_FL_NO_MOB}
ALWAYS_LIGHT
end


                          elm_street2
names {"elm street"}
title "Elm Street"
descr
"   You are at the east end of Elm Street.  Wall Road is to the east and
Elm Street continues west."
movement SECT_CITY
west to elm_street1;
east to wall_rd7;
ALWAYS_LIGHT
end

/* ----------------------- Penny Lane ----------------------- */

                          penny_lane1

names {"penny lane"}
title "Penny Lane"
descr
"   You are at the west end of Penny Lane.  Royal Avenue is to the west and
Penny Lane continues east."
movement SECT_CITY
east to penny_lane2;
west to royal_av5;
ALWAYS_LIGHT
end


                          penny_lane2

names {"penny lane"}
title "Penny Lane"
descr
"   You are at the east end of Penny Lane.  The gate to the city park is to
the east and Penny Lane continues west."
movement SECT_CITY
east to park3;
west to penny_lane1;
flags {UNIT_FL_NO_MOB}
ALWAYS_LIGHT
end

/* -------------------------- Gladiator Road -------------------------- */

                          glad_rd1

names {"gladiator road"}
title "Gladiator Road"
descr
"   You are at the west end of Gladiator Road.  Wall Road is to the west and
Gladiator Road continues east."
movement SECT_CITY
east to glad_rd2;
west to wall_rd2;
ALWAYS_LIGHT
end


                          glad_rd2

names {"gladiator road"}
title "Gladiator Road"
descr
"   You are on a road leading east-west through the city.  To the east is
Colosseum Square and a rather large oval building."
movement SECT_CITY
east to col_sq8;
west to glad_rd1;
ALWAYS_LIGHT
end


                          glad_rd3

names {"gladiator road"}
title "Gladiator Road"
descr
"   You are on a road leading east-west through the city.  To the west is
Colosseum Square and a rather large oval building.."
movement SECT_CITY
east to glad_rd4;
west to col_sq4;
ALWAYS_LIGHT
end


                          glad_rd4

names {"gladiator road"}
title "Gladiator Road"
descr
"   You are at the east end of Gladiator Road.  Royal Avenue is to the east
and Gladiator Road continues west."
movement SECT_CITY
east to royal_av5;
west to glad_rd3;
ALWAYS_LIGHT
end


/* ----------------------- Colosseum Square ----------------------- */

                          col_sq1
names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the northwest corner of a large square paved with gravel.  To
your southeast is an enourmous oval building with many arches.  You can go
south and east around the Colosseum."
movement SECT_CITY
east to col_sq2;
south to col_sq8;
ALWAYS_LIGHT
end


                          col_sq2

names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the north end of a large square paved with gravel.  To your
south is an enourmous oval building with many arches.  You can go east and
west around the Colosseum.  Colosseum Road leads north from here."
movement SECT_CITY
north to col_rd1;
east to col_sq3;
west to col_sq1;
ALWAYS_LIGHT
end


                          col_sq3

names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the northeast corner of a large square paved with gravel.  To
your southwest is an enourmous oval building with many arches.  You can go
south and west around the Colosseum.  An armourer's shop is to the east."
movement SECT_CITY
east to armour_shop;
west to col_sq2;
south to col_sq4;
ALWAYS_LIGHT
end


                          col_sq4

names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the east end of a large square paved with gravel.  To your
west is an enourmous oval building with many arches.  You can go north and
south around the Colosseum.  Gladiator Road leads east from here."
movement SECT_CITY
east to glad_rd3;
north to col_sq3;
south to col_sq5;
ALWAYS_LIGHT
end


                          col_sq5

names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the southeast corner of a large square paved with gravel.
To your northwest is an enourmous oval building with many arches.  You can go
north and west around the Colosseum.  A blacksmith's shop is to the east and
a weaponsmith's shop is to the south."
movement SECT_CITY
north to col_sq4;
west to col_sq6;
east to bsmith_shop;
south to weapon_shop;
ALWAYS_LIGHT
end


                          col_sq6

names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the south end of a large square paved with gravel.  To your
north is the entrance to an enourmous oval building with many arches.  You
can go east and west around the Colosseum.  Colosseum Road leads south from
here."
movement SECT_CITY
east to col_sq5;
west to col_sq7;
south to col_rd2;
north to entrance@arena;
ALWAYS_LIGHT
end


                          col_sq7

names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the southwest corner of a large square paved with gravel.
To your northeast is an enourmous oval building with many arches.  You can go
north and east around the Colosseum.  The Mortician's is to the west and the
Carpenter's is to the south."
movement SECT_CITY
east to col_sq6;
north to col_sq8;
south to carp_shop;
west to mortician_shop;
ALWAYS_LIGHT
end


                          col_sq8

names {"colosseum square"}
title "Colosseum Square"
descr
"   You are in the west end of a large square paved with gravel.  To your
east is an enourmous oval building with many arches.  You can go north and
south around the Colosseum.  Gladiator Road leads west from here."
movement SECT_CITY
north to col_sq1;
south to col_sq7;
west to glad_rd2;
ALWAYS_LIGHT
end


/* ------------------------- Non-road Areas ------------------------- */

/* ----------------------- Cathedral Interior ----------------------- */

                             cth_entrance

names {"cathedral entrance"}
title "Cathedral Entrance"
descr
"   You are in a high-ceilinged entrance room.  The walls are white as chalk
and the reddish floor is paved with carefully lain flagstones.  A pair of
huge bronze doors lead south to the square outside and an arched doorway
leads north into the central church."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to cth_nave;
south to cth_square1;
/* Her skal være en aflåst og uflytbar "church box" som man kan komme penge
i. */
ALWAYS_LIGHT
end


                              cth_nave

names {"cathedral nave"}
title "Cathedral Nave"
descr
"   You are in centre of the church.  The arched ceiling high above you
features many colourful mosaics.  Memorial plaques are set in the white walls
between the numerous tall mosaic windows and a large number of pews stand on
the reddish stone floor."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to cth_altar;
east to cth_e_aisle;
west to cth_w_aisle;
south to cth_entrance;
ALWAYS_LIGHT
end


                              cth_altar

names {"cathedral altar"}
title "Cathedral Altar"
descr
"   You are by a large gilded altar with many beautiful carvings.  A pair of
huge ivory candles stand on the red altar cloth, burning brightly.  In the
eastern wall is a heavy wooden door.  You can go south to the nave and north
to the inner sanctum."
extra {"altar"} "It looks very expensive"
extra {"candle", "candles"} "There is nothing special about the candles."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS, UNIT_FL_SACRED}
movement SECT_INSIDE
north to cth_sanctum;
south to cth_nave;
east to cth_n_stairs1 open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED}
       key altar_key keyword {"heavy wooden door", "door"};
ALWAYS_LIGHT
end


                              cth_sanctum

names {"inner sanctum"}
title "Inner Sanctum"
descr
"   You are in the north end of the Cathedral.  Three enourmous mosaic
windows make the light sparkle in a kaleidoscopic shower.  The floor is
covered by a soft red carpet, and in the centre stands a large
three-legged golden bowl in which a small flame is burning steadily.  A door
leading to the small humble midgaard donation room is to the west."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS, UNIT_FL_SACRED}
movement SECT_INSIDE
south to cth_altar;
west to mdonate;
extra {"bowl", "flame"}
  "The flame doesn't appear to feed on anything, it just burns."
extra {"carpet"}
  "Red and soft.  Not the kind you usually walk on."
extra {"windows"}
"The mosaic colours are held in dark but very beautiful shades of blue and
green."
ALWAYS_LIGHT
flags {UNIT_FL_NO_WEATHER, UNIT_FL_NO_TELEPORT}

end

                               mdonate
names {"midgaard donations room", "midgaard donation room", "donations room"}
title "The Midgaard Donations Room"
descr
"   You are standing in a room beside the Inner Sanctum of
Midgaard. If you are lucky you might have the good graces
to have something nice drop into your lap, it has been known
to happen."
flags {UNIT_FL_NO_MOB, UNIT_FL_INDOORS, UNIT_FL_NO_WEATHER,
UNIT_FL_NO_TELEPORT}

east to cth_sanctum;
/* Dil to restrict getting all */
dilcopy all_block@udgaard ();
end

/*--------------------------------------------------------------------------
                       cth_crypt is moved to goj clan
-------------------------------------------------------------------------*/
/*                              cth_crypt

names {"cathedral crypt"}
title "Cathedral Crypt"
descr
"   You are in the dusty crypt below the cathedral.  It is a large
low-ceilinged room with old pillars supporting the crumbling arches."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to cth_n_stairs1;
ALWAYS_LIGHT
end
*/

                             cth_n_stairs1

names {"north cathedral stairs"}
title "A Narrow Stairway"
descr
"   You are on a narrow flight of stone stairs in the northern tower of the
Cathedral.  The stairs lead up and down, and a heavy wooden door is to the
west."
up to cth_n_stairs2;
west to cth_altar open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED}
       key altar_key keyword {"heavy wooden door", "door"};
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
ALWAYS_LIGHT
end


                             cth_n_stairs2

names {"north cathedral stairs"}
title "A Narrow Stairway"
descr
"   You are on a narrow flight of stone stairs in the northern tower of the
Cathedral.  You can go up and down."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to cth_n_stairs3;
down to cth_n_stairs1;
ALWAYS_LIGHT
end


                             cth_n_stairs3

names {"north cathedral stairs"}
title "A Narrow Stairway"
descr
"   You are on a narrow flight of stone stairs in the northern tower of the
Cathedral.  You can go up and down."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to cth_n_tower;
down to cth_n_stairs2;
ALWAYS_LIGHT
end


                             cth_n_tower

names {"northern belfry"}
title "The Northern Belfry"
descr
"   You are in an open room directly below a huge bell supported by numerous
heavy wooden beams.  From here, you have a terrific view of the city of
Midgaard in all directions.  A flight of narrow stairs leads down and a
strong bell rope hangs from above."
flags {UNIT_FL_INDOORS}
movement SECT_INSIDE
down to cth_n_stairs3;
/* Hvis nogen her skriver "pull rope" skal man over hele Midgaard kunne
  høre beskeden "The church bell peals."
*/
ALWAYS_LIGHT
end

                             cth_e_aisle

names {"eastern aisle"}
title "The Eastern Aisle"
descr
"   You are in the eastern aisle of the Cathedral.  Numerous pews are standing
here, facing the nave, and man-sized stone plaques set into the reddish floor
indicate that the church itself has been used for burials.  In the southern
wall is a narrow flight of stone stairs leading upwards."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
west to cth_nave;
up to cth_se_stairs1;
ALWAYS_LIGHT
end


                             cth_se_stairs1

names {"southeast cathedral stairs"}
title "A Narrow Stairway"
descr
"   You are on a narrow flight of stone stairs in the southeast tower of the
Cathedral.  You can go up and down."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to cth_se_stairs2;
down to cth_e_aisle;
ALWAYS_LIGHT
end


                             cth_se_stairs2

names {"southeast cathedral stairs"}
title "A Narrow Stairway"
descr
"   You are on a narrow flight of stone stairs in the southeast tower of the
Cathedral.  You can go up and down."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to cth_se_tower;
down to cth_se_stairs1;
ALWAYS_LIGHT
end


                             cth_se_tower

names {"southeast belfry"}
title "The Southeast Belfry"
descr
"   You are in an open room below a set of complicated-looking chimes.  From
here, you have a terrific view of the city of Midgaard in all directions.  A
flight of narrow stairs leads down."
flags {UNIT_FL_INDOORS}
movement SECT_INSIDE
down to cth_se_stairs2;
extra {"chimes"}
"They are hanging out of your reach and do not appear to have any means of
external activation.  The mechanics tick every second or so."
/*
  Her skal være "a large magpie" (en skade med sværhedsgrad som en Fido),
  der har en ring til 50gp (low-level treasure, skader samler på blanke
ting).
  Her skal desuden være "a large bird's nest".
*/
ALWAYS_LIGHT
end


                             cth_w_aisle

names {"western aisle"}
title "The Western Aisle"
descr
"   You are in the western aisle of the Cathedral.  Numerous pews are standing
here, facing the nave, and man-sized stone plaques set into the reddish floor
indicate that the church itself has been used for burials.  In the southern
wall is a narrow flight of stone stairs leading upwards."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to cth_nave;
up to cth_sw_stairs1;
ALWAYS_LIGHT
end


                             cth_sw_stairs1

names {"southwest cathedral stairs"}
title "A Narrow Stairway"
descr
"   You are on a narrow flight of stone stairs in the southwest tower of the
Cathedral.  You can go up and down."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to cth_sw_stairs2;
down to cth_w_aisle;
ALWAYS_LIGHT
end


                             cth_sw_stairs2

names {"southwest cathedral stairs"}
title "A Narrow Stairway"
descr
"   You are on a narrow flight of stone stairs in the southwest tower of the
Cathedral.  You can go up and down."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to cth_sw_tower;
down to cth_sw_stairs1;
ALWAYS_LIGHT
end


                             cth_sw_tower

names {"southwest belfry"}
title "The Southwest Belfry"
descr
"   You are in an open room below a set of complicated-looking chimes.  From
here, you have a terrific view of the city of Midgaard in all directions.  A
flight of narrow stairs leads down."
flags {UNIT_FL_INDOORS}
movement SECT_INSIDE
down to cth_sw_stairs2;
extra {"chimes"}
"They are hanging out of your reach and do not appear to have any means of
external activation.  The mechanics tick every second or so."
ALWAYS_LIGHT
end


/* ------------------ Cityguard Headquarters and Jail ------------------- */

                               jail
names {"jail"}
title "The Jail"
descr
"   You are in a dark and humid jail.  The dark stone walls are hard and cold
to the touch.  A heavy steel door is to the east."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS, UNIT_FL_NO_TELEPORT}
movement SECT_INSIDE
extra {"wall","walls"}
"The walls are marked with lots of scratches.  Some of them spell sentences
like `JAIL IS BETTER THAN SQL'."
ALWAYS_LIGHT
east to accuse_room open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED, EX_PICKPROOF}
       key jail_key
       keyword {"heavy iron grating","iron grating","grating"};

dilcopy jailmaintain@midgaard("captain@midgaard", "accuse_room@midgaard");
end


                           guard_dorm

title "The Guard Dormatory"
descr
"   You are in a rather large room with stone floor and white-chalked walls.
Along the walls stand about a dozen bunks, and a large wooden table stands in
the centre of the room.  The door leading back to the yard is to the east."
extra {"bunk", "bunks"} "They are all very well made."
extra {"table"} "Looks used but well-kept, nevertheless."
east to guard_yard;
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS, UNIT_FL_SACRED,
UNIT_FL_NO_TELEPORT}
ALWAYS_LIGHT
end

                           guard_skill

title "The Guard Gym"
descr
"   You are in a large rectangular room with wooden floor and white-chalked
walls. Wall bars are monted all along the walls. The door leading back to
the yard is to the south."
extra {"wall bars", "bars"} "They are obviously used for working out and
for learning new skills."
south to guard_yard;
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS, UNIT_FL_SACRED}
ALWAYS_LIGHT
end

                           guard_spell

title "The Guard Lecture Room"
descr
"   You are in a small square room with a stone floor and white-chalked
walls. A blackboard hangs on the northern wall and six desks are set
nicely facing the blackboard. The yeard is to the west."
extra {"blackboard"} "It is obviously used for explaining complicated
matters to scholars."
west to guard_yard;
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS, UNIT_FL_SACRED}
ALWAYS_LIGHT
end

                           guard_yard

title "The Yard"
descr
"   You are in the centre of a small square cobble stone yard surrounded
by white chalked walls. To your west is the guard dormatory, to the north
lies the gym, the lecture room is to your east and the entrance is south."
extra {"yard", "walls"}
"The yard is clean, the closeness of the walls lets but little light
down here."
north to guard_skill;
east to guard_spell;
west to guard_dorm;
south to accuse_room;
ALWAYS_LIGHT
end

                           accuse_room

names {"guard office"}
title "The Cityguard Office"
descr
"   You are in a tidy office.  A big desk made from dark wood is standing in
the centre of the room beside a strong safe.  In the corner is a wooden table
and a few chairs.  The street is to the south, and in the north wall is a
heavy iron grating through which you can see the jail."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS, UNIT_FL_NO_TELEPORT,
UNIT_FL_SACRED}
movement SECT_INSIDE
north to guard_yard;
south to main_st4;
west to jail  open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED, EX_PICKPROOF}
       key jail_key
       keyword {"heavy iron grating","iron grating","grating"};
ALWAYS_LIGHT
end


/* -------------------------- Town Hall -------------------------- */

                            th_entrance

names {"town hall entrance"}
title "The Town Hall Entrance"
descr
"   You are in a large empty hall with smooth polished stone floor.  Doorways
lead north, east and west.  A sign above the north doorway says `Council
Hall', another above the east doorway says `Hall of the Citizens', and a
third above the west doorway says `Town Library'."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to th_council;
east to th_citizen;
south to main_st3;
west to th_library;
ALWAYS_LIGHT
end


                            th_council

names {"council hall"}
title "The Council Hall"
descr
"   You are in a large room with numerous chairs arranged in a horseshoe arch
by a long table.  Slightly off the centre of the arch is a rostrum, and on
the wall behind it is a large tapestry depicting the Midgaard coat-of-arms."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to th_entrance;
extra {"tapestry", "coat-of-arms"}
"It shows a walled city with many towers, surrounded by an enourmous serpent."
ALWAYS_LIGHT
end

                            th_citizen

title "The Hall of the Citizens."
descr
"   You are in a large empty hall.  It appears to be quite unused, as most
of the citizens are either out working or getting drunk, maimed, or killed,
whatever their preference may be."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
flags {UNIT_FL_NO_WEATHER, UNIT_FL_NO_TELEPORT}
west to th_entrance;
ALWAYS_LIGHT

end


                            th_library

names {"town library"}
title "The Town Library"
descr
"   You are in a large room separated in two by a wooden bar.  On the other
side are numerous bookshelves holding lots and lots of old dusty volumes, and
between the bar and the shelves is a massive desk and a large uncomfortable-
looking chair."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to th_entrance;


/* Her skal være en "old white-haired librarian", der gør følgende når
  nogen kommer ind:
       (1) Rejser sig.
       (2) Spørger, hvilket emne spilleren ønsker oplysninger om.
       (3) Fanger det ord, spilleren siger og søger på det i en
           database-fil.
       (4) Hvis der er en entry i database-filen:
           (4.1) Han emote'r, at han forsvinder mellem reolerne og kommer
                 tilbage med en stor bog.
           (4.2) Han læser database-entry'en op af bogen.
           (4.3) Emote'r at han sætter bogen tilbage igen.
       (5) Hvis der ikke er en entry i database-filen:
           (5.1) Han trækker på skulderen og siger, han ikke kan hjælpe
                 med det pågældende emne.
       (6) Når rummet er tomt, sætter han sig ned igen.

 Hvert nummer ovenfor svarer til et "tick" (cirka 5 sekunder).

 Databasefilen skal indeholde generelle oplysninger om Midgaard, men skal
 også anvendes af wizards/gods, der ønsker at give oplysninger om deres
 områder eller hjælp til at løse deres quests.
*/
ALWAYS_LIGHT
end


/* ----------------------- Grunting Boar Inn ----------------------- */

                              grunting_inn

names {"grunting boar inn"}
title "The Grunting Boar Inn"
descr
"   You are in a large but cosy room.  The ceiling is high, but heavy wooden
beams, stretching from wall to wall, make it seem lower.  Numerous oil lamps,
hanging from the beams, cast a warm light on the many well-worn wooden chairs
and tables.  A staircase leads up to the reception."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
west to royal_av1;
up to reception;
ALWAYS_LIGHT
end

                               reception

names {"reception"}
title "The Reception"
descr
"   You by the counter in the reception room.  A staircase leads down to the
Grunting Boar Inn.  There is a small sign on the counter."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
down to grunting_inn;
extra {"sign"}
"Reception is closed due to unfair competition. Just quit."
ALWAYS_LIGHT
end



/* -------------------------- School of Magic -------------------------- */

                           mag_yard

names {"magic school yard"}
title "The Magic School Yard"
descr
"   You are in a large square yard surrounded by dark stone buildings.  Broad
stairs lead east up to the central building which is flanked by a pair of
tall pointy towers.  Doorways lead north and south into less impressive
buildings, and the gate leads west to Cathedral Square.  A sign above the
south door says `Light Wizardry'."
movement SECT_FIELD
north to mag_refectory;
south to mag_lecture;
west to cth_square3 open {EX_OPEN_CLOSE} keyword {"gate"};
east to mag_hall open {EX_OPEN_CLOSE} keyword {"door"};
ALWAYS_LIGHT
end


                           mag_refectory

names {"magic school refectory"}
title "Refectory"
descr
"   You are in a long undecorated room with numerous wooden chairs and
benches.  Some of the chairs have been thrown over, and the whole room seems
to have been left in a great hurry."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to mag_yard;
extra {"table","tables"}
"Most of the tables bear crude inscriptions like `I WANNA FIREBALL' and
`UNDEADS ARE KOOL'."
ALWAYS_LIGHT
end

                           mag_lecture

names {"magic school lecture room"}
title "Lecture Room"
descr
"   You are in a room with numerous worn wooden desks facing a large
blackboard on the east wall.  Three tall windows are set in the south wall,
and the magic school yard is to the north."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to mag_yard;
extra {"desk","desks"}
"Most of the desks bear crude inscriptions like `THE TEECHER IS A JERK' and
`MAGIC IS BOOORING'."
extra {"window","windows"}
"The windows are quite dirty."
extra {"blackboard","blackboards"}
"A small demon with tiny horns, wearing sneakers and holding a pitch-fork is
drawn on the blackboard."
/* Here Zofax teaches low-level spells (light wizardry). */
ALWAYS_LIGHT
end


                           mag_hall

names {"magic school hall"}
title "Magic School Hall"
descr
"   You are in a large bare hall.  On the east wall is a large bronze plate
with some words on it, and to the west, is a large door leading to the yard.
In the northeast corner of the hall is a spiral staircase leading upwards.
A sign above the south doorway says `Heavy Wizardry' and one above the north
doorway says `Deep Magic'."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to mag_dormitory;
west to mag_yard open {EX_OPEN_CLOSE} keyword {"door"};
north to mag_n_stair1;
south to mag_s_stair1;
extra {"plate","words"}
"It says :-&l
                       The Midgaard Academy of Magic

                           In Memorial Rofomagus"
ALWAYS_LIGHT
end


                          mag_dormitory

names {"magic school dormitory"}
title "Magic School Dormitory"
descr
"   You are in a large low-ceilinged room with many simple bunk beds.  Most
of the beds are unmade and appear to be left in great hurry.  A spiral
staircase in the northeast corner of the room leads downwards."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
down to mag_hall;
ALWAYS_LIGHT
end

                           mag_n_stair1

names {"magic school north stairs"}
title "Northern Stairway"
descr
"   You are at the foot of a steep spiral staircase leading up into the
northern tower.  The stone stairs are worn with many years of use.  A doorway
leads south to the central hall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to mag_hall;
up to mag_n_stair2;
ALWAYS_LIGHT
end


                           mag_n_stair2

names {"magic school north stairs"}
title "Northern Stairway"
descr
"   You are on a steep spiral staircase leading up into the northern tower.
The stone stairs are worn with many years of use.  Further upwards, the
staircase ends in a room, and you can see a faint light coming from above."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
down to mag_n_stair1;
up to mag_n_tower;
ALWAYS_LIGHT
end


                           mag_n_tower

names {"magic school north tower"}
title "Northern Tower of Magic Academy"
descr
"   You are in a large circular room in the top of the tower.  The walls are
lined with bookshelves holding many old volumes, and on a massive working desk
by the north wall is a large collection of bottles and jars.
A pentagram is engraved on the stone floor."
extra {"pentagram"}
"It is carved nearly one inch deep into the floor, and the furrow has been
filled almost to the edge with salt."
flags {UNIT_FL_INDOORS}
movement SECT_INSIDE
down to mag_n_stair2;
/* Here Merlin teaches high-level spells (deep magic). */
ALWAYS_LIGHT
end


                           mag_s_stair1

names {"magic school south stairs"}
title "Southern Stairway"
descr
"   You are at the foot of a steep spiral staircase leading up into the
southern tower.  The stone stairs are worn with many years of use.  A doorway
leads north to the central hall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to mag_hall;
up to mag_s_stair2;
ALWAYS_LIGHT
end


                           mag_s_stair2

names {"magic school south stairs"}
title "Southern Stairway"
descr
"   You are on a steep spiral staircase leading up into the southern tower.
The stone stairs are worn with many years of use.  Further upwards, the
staircase ends in a room, and you can see a faint light coming from above."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
down to mag_s_stair1;
up to mag_s_tower;
ALWAYS_LIGHT
end


                           mag_s_tower

names {"magic school south tower"}
title "Southern Tower of Magic Academy"
descr
"   You are in a large circular room in the top of the tower.  The walls are
lined with bookshelves holding many old volumes, and on a massive working desk
by the north wall is a large collection of bottles and jars.
A thaumaturgic triangle has been drawn on the stone floor."
extra {"triangle"}
"It is a large triangle drawn with white chalk inside a circle."
flags {UNIT_FL_INDOORS}
movement SECT_INSIDE
down to mag_s_stair2;
/* Here Elvira teaches medium-level spells (heavy wizardry). */
ALWAYS_LIGHT
end


/* -------------------------- Park Area -------------------------- */

                            park1

names {"park"}
title "Park Entrance"
descr
"   You are on a gravel path leading east and west through the peaceful park
and north towards Park Road.  The grass is fresh and green, and many young and
healthy-looking trees grow on each side of the path."
movement SECT_FIELD
north to park_rd1;
east to park_pond;
west to park2;
south to  park_circle;
ALWAYS_LIGHT
end


                            park2

names {"park"}
title "The Park"
descr
"   You are on a gravel path leading south and east through the peaceful park.
The grass is fresh and green, and many young and healthy-looking trees grow on
each side of the path."
movement SECT_FIELD
east to park1;
south to park3;
north to park6;
ALWAYS_LIGHT
end


                            park3

names {"park"}
title "Park Entrance"
descr
"   You are on a gravel path leading north and east through the peaceful park
and west towards Penny Lane.  The grass is fresh and green, and many young and
healthy-looking trees grow on each side of the path.  Eastwards is a peculiar
stone circle."
movement SECT_FIELD
north to park2;
east to park_circle;
west to penny_lane2;
ALWAYS_LIGHT
end

                            park_circle

names {"park"}
title "Stone Circle"
descr
"   You are in a peculiar circle of small monoliths made from irregular slabs
of granite.  The twelve grey rocks are weather-beaten and must have been here
for centuries.  Within the circle, the grass appears especially tall and
vigorous.  Paths outside the circle lead off in all directions."
movement SECT_FIELD
flags {UNIT_FL_SACRED}
west to park3;
south to park4;
north to park1;
east to park6;
ALWAYS_LIGHT
end

                            park4

names {"park"}
title "Park Entrance"
descr
"   You are on a gravel path leading north and east through the peaceful park
and south towards Park Road.  The grass is fresh and green, and many young and
healthy-looking trees grow on each side of the path.  Northwards is a peculiar
stone circle and westwards is a small cafe."
movement SECT_FIELD
north to park_circle;
east to park5;
west to park_cafe;
south to park_rd2;
ALWAYS_LIGHT
end


                            park5

names {"park"}
title "The Park"
descr
"   You are on a gravel path leading north and west through the peaceful park.
The grass is fresh and green, and many young and healthy-looking trees grow on
each side of the path."
movement SECT_FIELD
north to park6;
west to park4;
ALWAYS_LIGHT
end


                            park6

names {"park"}
title "Park Entrance"
descr
"   You are on a gravel path leading north and south through the peaceful park
and east towards Elm Street.  The grass is fresh and green, and many young and
healthy-looking trees grow on each side of the path."
movement SECT_FIELD
north to park_pond;
east to elm_street1;
south to park5;
west to park_circle;
ALWAYS_LIGHT
end



                            park7

names {"park"}
title "The Park"
descr
"   You are on a gravel path leading through a peaceful park. To the south
you hear the faint trinkling of water. The grass is fresh and green, and
many young and healthy-looking trees grow on each side of the path."

movement SECT_FIELD
south to park_pond;
west to park8;
ALWAYS_LIGHT
end

                            park8

names {"park"}
title "The Park"
descr
"   You are on a gravel path leading west and south through a peaceful park.
The grass is fresh and green, and many young and healthy-looking trees
grow on each side of the path."

movement SECT_FIELD
south to park9;
east to park7;
ALWAYS_LIGHT
end



                            park9

names {"park"}
title "The Park"
descr
"   You are on a gravel path leading through a peaceful park. To the west
you hear the faint trickling of water.  The grass is fresh and green, and
many young and healthy-looking trees grow on each side of the path."

movement SECT_FIELD
north to park8;
east to park_pond;
ALWAYS_LIGHT
end


                            park_pond

names {"park", "pond"}
title "Park Pond"
descr
"  Trees provide a shaddy brack drop to this quiet little pond.  Its water
looks fresh and clear and many colourful flowers grow on the bank. The
pond seems to be home to a gaggle of geese and a flock of ducks that
waddle around waiting to be fed. In the center of the pond water sprays
from a fountain, the tiny droplets forming a spectacular rainbow.  Paths
lead off in all directions through the peaceful park."
movement SECT_FIELD
west to park1;
south to park6;
east to park9;
north to park7;
up to rainbow_1;

ALWAYS_LIGHT
end
/*---------------------------rainbow---------------------------------*/

                    rainbow_1
title "On A Rainbow"
names {"rainbow"}
descr
"You are standing on a rainbow and the colors seem to encompass you into
thier folds. You have a feeling of pure peace over come you as you look
out over the world throught the calming colors of the rainbow. You may
follow the rainbow down to midgaard or up further into the sky."
movement SECT_HILLS
down to park_pond;
up to rainbow_2;
ALWAYS_LIGHT
end


                    rainbow_2
title "On A Rainbow"
names {"rainbow"}
descr
"You are standing on a rainbow and the colors seem to encompass you into
thier folds. You have a feeling of pure peace over come you as you look
out over the world throught the calming colors of the rainbow. You may
climb to the skys or slide down the rainbow to the solid ground below."
movement SECT_HILLS
down to rainbow_1;
up to rainbow_3;
ALWAYS_LIGHT
end


                    rainbow_3
title "On A Rainbow"
names {"rainbow"}
descr
"You are standing at the crown of a large rainbow, colors seem to
encompass you into thier folds. You have a feeling of pure peace over come
you as you look out over the world throught the calming colors of the
rainbow.  The rainbow curves a bit to the west here and a crystal bridge
spans to the east."
movement SECT_HILLS
west to rainbow_4;
down to rainbow_2;
ALWAYS_LIGHT
end

                    rainbow_4
title "On A Rainbow"
names {"rainbow"}
descr
"You are standing on a rainbow and the colors seem to encompass
you into thier folds. You have a feeling of pure peace over come you as
you look out over the world throught the calming colors of the rainbow.
You may go east to the crown of the rainbow of continue downwards."
movement SECT_HILLS
east to rainbow_3;
down to rainbow_5;
ALWAYS_LIGHT
end

                    rainbow_5
title "On A Rainbow"
names {"rainbow"}
descr
"You are standing on a rainbow and the colors seem to encompass you into
thier folds. You have a feeling of pure peace over come you as you look
out over the world throught the calming colors of the rainbow. You may
climb to the skys or slide down the rainbow to the solid ground below."
movement SECT_HILLS
up to rainbow_4;
ALWAYS_LIGHT

flags {UNIT_FL_NO_MOB}

end


/* -------------------------- Grubby Inn -------------------------- */

                             grub_inn

names {"grubby", "inn"}
title "The Grubby Inn"
descr
"   You are in a large, low-ceilinged room with many old chairs and tables.
The walls are dark from many years of smoke, most of which must still be here,
judging by the air quality.  A counter is to the south and beside it is a
private-looking door.  A staircase leads up, and a faded sign hangs on the
wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS,UNIT_FL_SACRED}
movement SECT_INSIDE
east to baker_st1;
up to grub_corr;
west to grub_smug open {EX_OPEN_CLOSE, EX_LOCKED, EX_CLOSED}
    key grub_key keyword {"door"};
ALWAYS_LIGHT
end


                             grub_smug
names {"grubby", "smug"}
title "Filthy's Smug"
descr
"   You are in a small dirty room.  The curtains are drawn, just barely
enabling
you to see that the room contains a bunk and a small circular staircase
leading
downwards."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to grub_inn open {EX_OPEN_CLOSE, EX_LOCKED, EX_CLOSED}
    key grub_key keyword "door";
down to grub_cellar2;
ALWAYS_LIGHT
end


                             grub_cellar1

names {"grubby", "wine cellar"}
title "The Grubby Inn Wine Cellar"
descr
"   You are in a dusty room below the Grubby Inn.  Old ramshackle wine racks
stand along the walls, and many empty bottles litter the floor.  To the east
is a heavy iron fence."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to grub_cellar2 open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED}
       key grub_key keyword {"iron fence", "fence"};
ALWAYS_LIGHT
end

                             grub_cellar2

names {"grubby", "cellar", "corridor"}
title "The Grubby Inn Cellar"
descr
"   You are in a dusty corridor below the Grubby Inn.  The place is crowded
with cobwebs too large to make you feel comfortable.  A heavy iron fence is
to the west.  Footprints in the dust lead east through the corridor and west
beyond the fence."
extra {"footprints"} "They look fairly fresh."
extra {"cobwebs"} "They move softly to the touch.  Seems uninhabited, though."
extra {"fence"}
"It has a lock and hinges.  Through it you can see many wine bottles."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
west to grub_cellar1 open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED}
       key grub_key keyword {"iron fence", "fence"};
east to grub_cellar3;
up to grub_smug;
ALWAYS_LIGHT
end

grub_cellar3
names {"grubby", "cellar"}
title "The Grubby Inn Cellar"
descr
"   You are in a large dusty room below the Grubby Inn.  The ceiling is arch-
shaped but almost hidden by many years of cobwebs. A huge barrel lies face
against you by the east wall."
extra {"barrel"}
"It seems empty, judging by the sound it makes when you knock on it."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
west to grub_cellar2;
/* grub_barrel is placed inside this room */
south to grub_closet;
/* XXX Skal denne exit bare v{re s}dan?? */
ALWAYS_LIGHT
end


                             grub_barrel

names {"beer barrel", "barrel"}
title "Inside the Barrel"
descr
"   You are inside a huge barrel."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
manipulate {MANIPULATE_ENTER}       /* You can enter the barrel */
open {EX_OPEN_CLOSE, EX_CLOSED, EX_INSIDE_OPEN}
movement SECT_INSIDE
in grub_cellar3
east to thief_guild;
ALWAYS_LIGHT
end


                            thief_guild

names {"thief", "guild"}
title "The Thieves' Guild"
descr
"   You are in a large low-ceilinged and dimly-lit room.  Dark, heavy drapes
cover most of the walls, giving the room an eerie atmosphere."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
up to grub_barrel;
/* XXX */
/* Michael: Perhaps a secret entrance to the sewers? or to Haon Dor? */
/* Mads   : Til sewers var en meget god ide.  Når de bliver lavet. */
ALWAYS_LIGHT
end


                             grub_corr

names {"grubby", "corridor"}
title "Madame's Place"
descr
"   You are in a dim-lit corridor at the top of a staircase.  The
nauseating red
wallpaper has begun to peel off in various places.  Doors lead north, west and
south and are marked from 1-3 respectively.  A small desk stands at the
plateau
above the staircase and a sign hangs on the wall behind it."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
down to grub_inn;
north to grub_joy1;
west to grub_joy2;
south to grub_joy3;
extra {"sign"}
"Out of order."
ALWAYS_LIGHT
end


                             grub_joy1
/* Fanny */
names {"grubby", "room 1"}
title "Room 1 at the Grubby Inn"
descr
"   You are in a large, dim-lit room.  Red wallpaper covers the walls and an
enormous fourposter bed stands on a thick carpet in the centre of the room.
The curtains are drawn, leaving the task of lighting the room, to a single
candle on the bedside table."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to grub_corr;
ALWAYS_LIGHT
end


                             grub_joy2

/* Giacomo (Casanova) */
names {"grubby", "room 2"}
title "Room 2 at the Grubby Inn"
descr
"   You are in a large, dim-lit room.  Red wallpaper covers the walls and an
enormous fourposter bed stands on a thick carpet in the centre of the room.
The curtains are drawn, leaving the task of lighting the room, to a single
candle on the bedside table."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to grub_corr;
ALWAYS_LIGHT
end

                             grub_joy3

/* Secret entrance to thieves' guild */
names {"grubby", "room 3"}
title "Room 3 at the Grubby Inn"
descr
"You are in a large, dim-lit room.  Red wallpaper covers the walls and an
enormous fourposter bed stands on a thick carpet in the centre of the room.
The curtains are drawn, leaving the task of lighting the room, to a single
candle on the bedside table."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to grub_corr;
ALWAYS_LIGHT
end

                          grub_closet

names "closet"
title "Inside the Closet"
descr
"You are inside a dark closet."
outside_descr
"A closet has been set against the wall."

flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
manipulate {MANIPULATE_ENTER}       /* You can enter the cupboard */
open {EX_OPEN_CLOSE, EX_CLOSED, EX_INSIDE_OPEN}
movement SECT_INSIDE
in grub_joy3  /* Place in joy room 3, secret passage to cellar */
down to grub_cellar3;
ALWAYS_LIGHT
end


/* -------------------------- Wizard Tower -------------------------- */

/* Something remains to be done about this... */

                             wiz_entrance
title "A Dusty Entrance Hall"
descr
"       As you look upon the room, you can tell that at one time it was quite
a stylish and elegant room.  That has long since changed.  The room is covered
in three inches of dust.  It coats everything in sight, clinging to it like a
spider web.  There are broken pieces of furniture lying on the floor, which
is covered by a moth eaten red carpet.  From the south you smell decaying
food and human sweat."

extra {"three inches of dust", "dust"}
"The dust is dark gray and heavy.  It covers everything in the room evenly,
and it is as deep the top of your boot."

extra {"broken furniture", "broken pieces", "furniture", "pieces"}
"The wood has long since rotted and decayed, leaving moldy broken pieces
of what was once expensive furniture."

extra {"moth eaten red carpet", "red carpet", "carpet"}
"The carpet was once a vibrant red colour, but is now a faded red covered in
dark gray dust.  There are holes in the carpet where the moths have feasted,
leaving this once grand piece of finery nothing more than a foot mat."

flags {UNIT_FL_INDOORS, UNIT_FL_NO_WEATHER, UNIT_FL_NO_TELEPORT,
UNIT_FL_NO_MOB}
movement SECT_INSIDE

north to main_st4 open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED}
     keyword {"oak door", "door"};

extra {"oak door", "door"}
"This looks to be an old decaying door."

IN_ALWAYS_DARK

end


/* -------------------------- Warehouse -------------------------- */

/* Something remains to be done about this, too... */

                            warehouse

names {"warehouse"}
title "Abandoned Warehouse"
descr
"   You are inside the only room in the old warehouse.  Only a sparse amount
of light shines in through the boarded up windows above you.  The place is
very dusty and appears to have been unused for many years."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to wharf2;
ALWAYS_LIGHT
end

/* -------------------------- Shops -------------------------- */

engraver_shop
names {"engraver's workshop","workshop"}
title "At Veejay's Engraving Workshop"
descr
"A characteristic smell of warm leather, metal and sound of people
working fills this small shop. A single window offers a view of the
Tailor Street and the Post Office just opposite the workshop. A dwarf and a
gnome, both hard at work, can be seen through a half-open door at the back
of the store.&n
A sign hanging in the window offers some info on the workmanship prices.&n
A small note is fastened underneath the sign."
extra {"sign in the window","sign","window"}
"&lThe sign proclaims:

 ------------------------------------------
  Veejays Engraving Services

&c+r  Engraving (max.10 letters) : min. 5 GP&cw

  Note that the engraving cost increases sharply for magical items.
  The engraving is permanent and cannot be removed or remade.
  The engraving will be easily visible on the item (title as well
  as description).

  Give the item in question to Veejay to engrave it with the text
  of your choice. Please note that some items cannot be engraved.
 ------------------------------------------

A small note at the bottom of the sign demands your immediate attention.

&f"
extra {"note fastened to the sign","note"}
"&lThe note reads:

&c+r    Warning!&cw

In some cases, the engraving can cause problems in
highly magical or Quest-related items (mainly if the
creator of the item uses its title or description in
DIL programs). If you encounter a problem using an
engraved item, report the problem through the God
Assistance Board and replace your item for a new one.

   Thank you.

 Sk(r)ay the Speaker for the Artisans.

&f"
extra {"dwarf and the gnome in the workshop","dwarf","gnome","workshop"}
"They both appear very busy and hard at work. Better not bother them or
your job will take even longer.&n"
movement SECT_INSIDE
flags {UNIT_FL_NO_WEATHER,UNIT_FL_INDOORS}
ALWAYS_LIGHT
west to tailor_st3@midgaard open {EX_OPEN_CLOSE}
descr "The Tailor Street is just outside the door.";
end

                          armour_shop

names {"armourer"}
title "The Armourer's"
descr
"   You are in a large, hot workshop.  Fires blaze in the two large forges in
the east wall, a heavy anvil standing in front of each.  On the
smoke-blackened
walls hang numerous shelves with tools and half-finished armour-parts.  A sign
hangs on the wall."
extra {"forge", "forges"} "Both forges are very hot."
extra {"anvil", "anvils"} "The anvils appear very used."
extra {"tool", "tools", "shelf", "shelves"}
"The tools on the shelves are of all shapes and sizes, from needles to
sledgehammers."
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy an item,
       `sell ' to sell an item,
       `request ' to ask the price of an item and
       `value ' to make the armourer evaluate an item."

flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
west to col_sq3;
ALWAYS_LIGHT
end


                           baker_shop

names {"baker"}
title "The Baker's"
descr
"   You are in a large room with white-chalked walls.  A pair of huge ovens
are built into the south wall.  A simple, but very large, desk stands in the
middle of the room and on the other side are numerous baskets containing bread
and pastry.  A sign stands on the desk."
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy an item,
       `sell ' to sell an item,
       `request ' to ask the price of an item and
       `value ' to make the baker evaluate an item."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to main_st2;
ALWAYS_LIGHT
end


   mid_storage

title "Storage Office"
descr
"You have entered the famous safety deposit room of the midgaard bank.
hundreds of small drawers line the  walls in neat rows.  The room glitters
with the polished bronze and steal that make up the Thief proof deposit boxes.
The marble floors shine like nothing you have ever seen and the profesional
way
the room is kept makes you feel safe with putting your most prized possessions
here for safe keeping."

extra {"drawers","drawer"}
"These drawerslook to have been made by a master black  smith.  There
doesn't seem to be
any way possible to pry one open."
extra {"floors"}
"Yup its well polished marble floor neat eh?"
extra {"sign"}
"&l
The Sign Says:

-rent [container]
-store
-unstore
-storage [list]
"

flags {UNIT_FL_NO_WEATHER}

movement SECT_INSIDE
west to bank;
end


                             bank

names {"bank"}
title "The Bank"
descr
"   You are in a high-ceilinged room with white-chalked walls.  A pair of tall
windows with bars are set in the west wall, and wall-like mahogany counter,
complete with teller window, seperates the room in two.  A small passage
leads around the tellers to the east.  The door is to the
west, and a sign hangs on the wall between the windows."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
extra {"sign"}
"It says :-&l
                        The Bank of Midgaard

               We stash your cash and hold your gold

   Use `deposit ' to deposit,
       `withdraw ' to withdraw,
       `balance' to get a statement of your account,
       `exchange ' to either split up a big coin or fuse smaller and
       `exchange to ' to exchange specificly."
movement SECT_CITY
west to park_rd2;
east to mid_storage;
ALWAYS_LIGHT
end


                             boat_shop

names {"boat shop"}
title "The Boat Shop"
descr
"   You are in a small marine store near the riverside.  It consists of a
single room with well-worn wooden floor filled to the edge with all sorts of
mariner's tackle.  A sign hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to wharf1;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy an item,
       `sell ' to sell an item,
       `request ' to ask the price of an item and
       `value ' to make the captain evaluate an item."
ALWAYS_LIGHT
end


                              bsmith_shop

names {"blacksmith"}
title "The Blacksmith's"
descr
"   You are in an old, but well-kept smithy.  An old-fashioned forge is built
into the east wall and in front stands an anvil with many dents from hammer
blows.  A small fire, just large enough to make the smithy cosy, burns in the
forge.  A sign hangs on the wall."
flags {UNIT_FL_INDOORS}  /* Not really, partly outdoors (forge) */
movement SECT_INSIDE
west to col_sq5;
ALWAYS_LIGHT

extra {"sign", "wall"}
"It says :-&l

   The smith has retired from active work but will estimate the quality
   of your equipment for a very reasonable price.

   Use `evaluate ' to make the smith evaluate the quality of a
   weapon, armour or shield.

   Use  `give Sam to have an item resized."

extra {"$metal room"}
"this room is for armor sizing"
end



                           butcher_shop

names {"butcher"}
title "The Butcher's"
descr
"   You are in a small, smelly room.  The stone floor is covered by a thick
layer of sawdust, and from the ceiling various animal carcasses are hanging
on hooks.  The room is split in two by a large wooden counter.  A sign hangs
on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to main_st6;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something and
       `value ' to make the butcher evaluate something."
ALWAYS_LIGHT
end


                             carp_shop

names {"carpenter"}
title "The Carpenter's"
descr
"   You are in a nice, light workshop.  The room is rather large and contains
many wooden shelves with different tools used for carpentry.  The floor is
littered with sawdust and woodshaving.  A sign hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to col_sq7;
extra {"sign"}
"It says :-&l

                 OUT OF ORDER

   Use `list' to see what is in store,
       `buy ' to buy an item,
       `sell ' to sell an item,
       `request ' to ask the price of an item and
       `value ' to make the carpenter evaluate an item."
ALWAYS_LIGHT
end


                             fish_shop

names {"fishmonger"}
title "The Fishmonger's"
descr
"   You are in a small, smelly room.  The stone floor is covered by a thick
layer of sawdust, and numerous caskets with fish are standing along the walls.
A fishing net is suspended below the ceiling to add to the atmosphere, and a
sign hangs below the net."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to wharf3;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something and
       `value ' to make the fishmonger evaluate something."
ALWAYS_LIGHT
end


                             greeng_shop

names {"greengrocer"}
title "The Greengrocer's"
descr
"   You are in a small, cool room that smells faintly of fresh earth.
Various fruits and vegetables are kept in wooden bins along the walls.
A pair of scales stands on the counter.  A sign hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to main_st3;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something and
       `value ' to make the greengrocer evaluate something."
ALWAYS_LIGHT
end


                            ironmon_shop

names {"ironmonger"}
title "The Ironmonger's"
descr
"   You are in a large room with white stone walls.  The numerous shelves
are filled with miscellaneous hardware.  The door is to the north, and a sign
hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to main_st1;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something and
       `value ' to make the ironmonger evaluate something."
ALWAYS_LIGHT
end


                             jewel_shop

names {"jeweller"}
title "The Jeweller's Shop"
descr
"   You are in a small but beautifully furnished room.  Warm light emanates
from the small oil lamps on the walls and is reflected in the hard, polished
surface of the big mahogany desk that stands in the centre of the room.
A small sign with golden letters stands on the desk."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to park_rd2;
extra {"oil","lamps"}
"They are made from polished gold and looks as if they are securely fastened
to the smooth stone walls."
extra {"desk"}
"Your face is reflected in its surface."
extra {"sign"}
"The golden letters say :-&l

   Use `list' to see what is in store,
       `buy ' to buy an item,
       `sell ' to sell an item,
       `request ' to ask the price of an item and
       `value ' to make the jeweller evaluate an item.
       `give Janet to have an item resized."

ALWAYS_LIGHT
extra {"$metal room"} ""
extra {"$leather room"} ""
extra {"$clothes room"} ""
end



                           leather_shop

names {"leather worker", "leather shop"}
title "The Leather Shop"
descr
"   An acrid smell fills this large room.  Along the walls are numerous
shelves containing all sorts of animal hide and in the crackling fireplace
hangs a big iron pot with boiling water.  In the middle of the room is a
large and somewhat worn oaken table.
A wooden sign hangs above the fireplace."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to main_st6;
extra {"fireplace"}
"It is a rather large fireplace made from heavy granite rocks."
extra {"table"}
"It is made from solid oak but appears to be very used.  Its surface is
covered in marks and scratches.  A large burning candle stands directly on
the table surface, tallow flowing down its sides."
extra {"pot"}
"Several large pieces of leather hide are boiling in the iron pot."
extra {"sign"}
"The wooden sign says :-&l

   Use `list' to see what is in store,
       `buy ' to buy an item,
       `sell ' to sell an item,
       `request ' to ask the price of an item
       `value ' to make the leather worker evaluate an item and
       `give Myrna to have an item resized."
ALWAYS_LIGHT

extra {"$leather room"}
"this room is for sizing leather armors."
end


                           magic_shop
names {"magic shop"}
title "The Magic Shop"
descr
"   You are in a low-celinged room with many shelves filled with jars and
bottles of all shapes and sizes.  The scent of foreign herbs and spices
puzzles your nose.  A sign stands on a desk in the middle of the room."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
west to tailor_st2;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy an item,
       `sell ' to sell an item,
       `request ' to ask the price of an item and
       `value ' to make Esmerelda evaluate an item."
ALWAYS_LIGHT
end


                           mortician_shop

names {"mortician"}
title "The Mortician's"
descr
"   You are in a small, stuffy place.  The heavy curtains hanging in front of
the window do a good job keeping the light out.  The dimness is unbroken save
for the fragile light of a candlestick standing on the dark polished mahogany
counter.  A small sign stands beside the candlestick."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to col_sq7;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something,
       `request ' to ask the price of something and
       `value ' to make the mortician evaluate something."
ALWAYS_LIGHT
end


                           park_cafe

names {"park cafe", "cafe"}
title "Park Cafe"
descr
"   You are in a small, light cafe.  The small number of chairs and tables
are all made from white-painted metal shaped in an somewhat fragile-looking
but very elegant way.  The exit is to the east."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to park4;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something,
       `request ' to ask the price of something and
       `value ' to make the maid evaluate something."
ALWAYS_LIGHT
end


                             pet_shop

names {"pet shop"}
title "The Pet Shop"
descr
"   You are in a large, high-ceilinged room.  The air is smelly and filled
with the sounds of birds squeaking, dogs barking, and cats meowing.  Numerous
cages standing on the floor and hanging from the ceiling contain many
different
animals.  A sign hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
south to main_st1;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy a pet,
       `sell ' to sell a pet,
       `request ' to ask the price of a pet and
       `value ' to make the pet shop boy evaluate a pet."
ALWAYS_LIGHT
end


                            post_office

names {"post office"}
title "The Post Office"
descr
"   You are in a small, low-ceilinged room.  Light shines in through a pair
of tall windows in the east wall.  A high wooden counter separates the room
in two.  A sign hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
east to tailor_st3;
extra {"sign"}
"   Use&l
     `mail ' to send a letter to somebody.
     `request' to get your mail.
     `eat ' to erase the letter permanently."
ALWAYS_LIGHT

dilcopy letter_subst@udgaard();

end


                           tailor_shop

names {"tailor"}
title "The Tailor's"
descr
"   You are in a small, comfortable room.  The walls are lined with shelves
containing various kinds of fabric in many colours.  The room holds no
furniture except for a very large table in the centre of the room.  A sign
hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
west to tailor_st1;
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something,
       `request ' to ask the price of something,
       `value ' to make the tailor evaluate something and
       `give Tom to have your item resized."
ALWAYS_LIGHT

extra {"$clothes room"}
"This room is for sizing clothes"
end


                           weapon_shop

names {"weaponsmith"}
title "The Weaponsmith's"
descr
"   You are in a small, hot workshop.  A fire blazes in a large forge in the
south wall, and the once-white stone walls are blackened with smoke.  Beside
the forge is a large pair of bellows and an anvil.  A sign hangs on the wall."
flags {UNIT_FL_NO_WEATHER, UNIT_FL_INDOORS}
movement SECT_INSIDE
north to col_sq5;
extra {"forge"} "The forge looks very hot indeed."
extra {"anvil"} "The anvils appears very used."
extra {"bellows"}
"The bellows are used for heating the forge by blowing air into the fire."
extra {"sign"}
"It says :-&l

   Use `list' to see what is in store,
       `buy ' to buy something,
       `sell ' to sell something,
       `request ' to ask the price of something and
       `value ' to make the weaponsmith evaluate something."
ALWAYS_LIGHT
end



%mobiles

/* -------------------------- SHOP KEEPERS -------------------------- */

randall
names {"Randall"}
title "Randall"
descr "Randall stands here pondering."
extra {}
"He looks kinda dirty and old, but you figure he's pretty smart."
alignment -100
race RACE_ELF
sex SEX_MALE
level 199
flags {UNIT_FL_NO_TELEPORT}
height 200
weight 120
NATURAL_DEF(WPN_FIST,ARM_CLOTHES)
//  MSET_ABILITY(str,dex,con,hit,bra,cha,mag,div)
//  MSET_WEAPON(axeham,sword,club,polearm,natural,spec)
//  MSET_SPELL(div,pro,det,sum,cre,mind,heat,cold,elec,poison,acid)
MSET_ABILITY(10,10,11,11,16,15,16,11)
MSET_WEAPON(1,1,1,1,2,1)
MSET_SPELL(8,8,8,8,13,8,8,8,8,8,8)

dilcopy item_charge@midgaard(1);

end /* randall */


veejay
names {"Veejay","engraver"}
title "Veejay the engraver"
descr "Veejay the engraver sits at his table, hard at work."
extra {}
"A black-haired and dark-skinned man, apparently not native to the city of
Midgaard. He is the best in his field and can offer you an engraving for
a reasonable price."
M_SHOP_KEEPER(40,SEX_MALE,RACE_HUMAN)
height 178
weight 150
exp 20
money 3 IRON_PIECE
MSET_ABILITY(20,20,10,25,13,10,1,1)
MSET_WEAPON(10,10,10,10,10,10)
MSET_SPELL(5,1,1,1,1,1,6,6,6,6,6)
flags {UNIT_FL_NO_TELEPORT}
dilcopy engrave@midgaard();
end


                                baker

names {"baker", "Barnie"}
title "Barnie"
descr
"Barnie the Baker is here, wiping flour from his face with one hand."
extra {}
"He is a fat, nice-looking baker."
M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
exp 0
money 10 IRON_PIECE, 1 COPPER_PIECE
position POSITION_SITTING
default POSITION_SITTING
special SFUN_WHISTLE

dilcopy shopkeeper@function(
{"bread@midgaard 25 50","pastry@midgaard 20 40"},
{
"$1n says, 'I've got no such food.'",
"$1n says, 'Why you haven't even got it, $3n?'",
"$1n says, 'Would you like to buy some bread or not?'",
"$1n says, 'This tasty $2n is too expensive for beggars like you, $3n.'",
"$1n says, 'Here you are, some delicious $2n.'",
"$1n says, 'I might be able to sell this $2n.'",
"$1n says, 'I don't have that many right now, maybe of you come back later.'",
"$1n says, 'I'm busy baking new goods, come back at 4.'"
},{"4","23"}, "19", 110, 10,2*PLATINUM_MULT, "", "" );

end



                             fishmonger

names {"fishmonger", "daughter", "Molly"}
title "Molly"
descr
"Molly the fisherman's daughter is here, brushing fish scales off her pantry."
extra {}
"She is a young, lean, pretty girl.  Absolutely nothing fishy about her."

M_SHOP_KEEPER(50, SEX_FEMALE, RACE_HUMAN)
money 10 IRON_PIECE, 1 COPPER_PIECE
position POSITION_SITTING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE

dilcopy shopkeeper@function(
{"kipper@midgaard 10 25","split_cod@midgaard 10 25","salmon@midgaard 10 25"},
{
"$1n says, 'I've got no such fish, landlubber!'",
"$1n says, 'You are really trying to sell me something you don't have,
$3n?'",
"$1n says, 'Would you like to buy some fish?",
"$1n says, '$3n, you can't afford $2n'",
"$1n says, 'Enjoy the $2n.",
"$1n says, 'I might be able to sell this.",
"$1n says, 'I don't have that many $2n in my stock right now.",
"$1n says, 'I'm waiting for some fish to sell, come back at 4."
}, {"2","23"}, "19", 130, 10,2*PLATINUM_MULT, "", "" );

end


                             butcher

names {"butcher"}
title "the butcher"
descr
"The butcher is here, wiping his meat cleaver on his apron."
extra {}
"He is a big, somewhat manic-looking butcher.  You notice that one of the
fingers on his left hand is missing."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 1 COPPER_PIECE
position POSITION_SITTING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE
dilcopy shopkeeper@function(
{"salted_beef@midgaard 20 50","turkey_dstick@midgaard 20 50",
"pork_saddle@midgaard 20 50"},
{
"$1n says, 'I've got no such meat!'",
"$1n says, '$3n are you trying to cheat me? You don't even have it!!'",
"$1n says, 'Would you like to buy some beef or not?'",
"$1n says, '$3n, you can't afford $2n'",
"$1n says, 'Here you $3n, some $2n'",
"$1n says, 'Did you kill this yourself, $3n? Cleaned is it? Well, I'll buy
it then.'",
"$1n says, 'Seems like i have to prepare some more meat, i don't have that
many right now.'",
"$1n says, 'I'm preparing some meat, come back at 4.'"
},{"4","23"}, "19", 110, 10,2*PLATINUM_MULT, "", "" );

end



                             ironmonger

names {"ironmonger", "Ikswan"}
title "Ikswan"
descr
"Ikswan the Ironmonger stands at the counter."
extra {}
"A big, but friendly-looking, fellow."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 3 COPPER_PIECE
position POSITION_SITTING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE
dilcopy shopkeeper@function(
{"torch@midgaard 10 40","lantern@midgaard 5 20","bag@midgaard 5 20",
"paper@midgaard 20 40","quill@midgaard 15 30","map@midgaard 5 20",
"dictionary@basis 10 40","smithtool@midgaard 5 20","needle@midgaard 5 20",
"leather_tool@midgaard 5 20"},
{
"$1n says, 'I've got no such item!'",
"$1n says, '$3n, you haven't even got it!'",
"$1n says, 'I don't trade with things such as $2n'",
"$1n says, '$3n, you can't afford $2n'",
"$1n says, 'Here you are.'",
"$1n says, 'Thank you $3n, this is a nice $2n.'",
"$1n says, 'Lucky the next shipment arrives tonight, i don't have that
many in my stock.'",
"$1n says, 'I'm expecting some more items soon, come back at 4.'"
},{"4","23"}, "1 12 15 16 17 18 21", 120, 80,2*PLATINUM_MULT, "", "" );

end


                            greengrocer

names {"greengrocer", "Gerald"}
title "Gerald"
descr
"Gerald the Greengrocer is here, eating an apple."
extra {}
"He looks very friendly, although his big nose seems somewhat potato-like."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 1 COPPER_PIECE
position POSITION_SITTING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE
dilcopy shopkeeper@function(
{"apple@midgaard 20 50","garlic@midgaard 20 50","water_melon@midgaard 15
30"}, {
"$1n says, 'I've got no such food!'",
"$1n says, '$3n, you haven't even got it!'",
"$1n says, 'I don't trade with things such as $2n'",
"$1n says, '$3n, you can't afford $2n'",
"$1n says, 'Here you are.'",
"$1n says, 'Thank you $3n, this is a nice $2n.'",
"$1n says, 'That shipment better arrive tonight, i don't have that many in
my stock.'",
"$1n says, 'The shop is closed right now, come back at 4.'"
}, {"4","23"}, "19", 110, 10,2*PLATINUM_MULT, "", "" );
end


                            weaponsmith

names {"weaponsmith", "Winston"}
title "Winston"
descr "Winston the Weaponsmith is standing here."
extra {} "He's a young weaponsmith who still has a lot to learn."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 3 COPPER_PIECE
position POSITION_SITTING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"wdclb0@midgaard 1 5",
"wdclb2@midgaard 1 5",
"dag0@midgaard 1 5",
"sword0@midgaard 1 5",
"lsword0@midgaard 1 5",
"ham0@midgaard 1 5",
"flail1@midgaard 1 5",
"spear0@midgaard 1 5",
"smithtool@midgaard 1 5",
"mace@midgaard 1 5"
},{
"   $1n says, 'I've got no such weapon.' ",
"   $1n says, '$3n, you haven't even got such a weapon!' ",
"   $1n says, 'I can't afford that great weapon, sorry!' ",
"   $1n says, '$3n, you can't afford this fabulous $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'You get %s for $2n, you blood sucker.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_WEAPON+""+ITEM_FIREWEAPON+"",
110,60,286720,"","");

end



                              armourer

names {"armourer", "Arthur"}
title "Arthur"
descr "Arthur the Armourer is standing here."
extra {}
"An old and yet very strong armourer, he has made more armours in his
lifetime than you have eaten peas."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 3 COPPER_PIECE
position POSITION_SITTING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"scale_coif@midgaard 1 5",
"scale_gloves@midgaard 1 5",
"scale_sleeves@midgaard 1 5",
"scale_jerkin@midgaard 1 5",
"scale_skirt@midgaard 1 5",
"scale_boots@midgaard 1 5",
"swood_shield@midgaard 1 5",
"smetal_shield@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_ARMOR+""+ITEM_SHIELD+"",
110,60,286720,"","");

end


                               tailor

names {"tailor","Tom"}
title "Tom"
descr "Tom the Tailor is sitting on the table, sewing busily."
extra {}
"He looks as an honest, hard-working artisan."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 3 COPPER_PIECE

exp 0
special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"pointy_hat@midgaard 1 5",
"robe1@midgaard 1 5",
"cloak1@midgaard 1 5",
"needle@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_WORN+"",
110,60,286720,"","");


dilcopy resize_func@midgaard (ITEM_ARMOR,ITEM_WORN,ITEM_WORN,
                             ARM_CLOTHES,ARM_CLOTHES,IRON_MULT,"talior");
special SFUN_TEACH_INIT
"&lskills;0;
$1n tells you, 'I have never heard of such a skill.';
$1n tells you, 'I do not know how to teach this skill.';
$1n tells you, 'You haven't got %s for me.';
$1n tells you, 'You haven't got %d skill points.';
$1n tells you, 'I can not teach you any more';
$1n tells you, 'You must be unaffected by magic, otherwise I can't teach you';
$1n tells you, 'Remove all equipment, please.';

 1;   100; resize clothes                   ;   50;  500;   5; 10;      0;
"

end

                           leather_worker

names {"Myrna", "leather worker"}
title "Myrna the Leather Worker"
descr "Myrna the Leather Worker is sitting by the table, sewing a leather
cap."
extra {}
"She looks as an honest, hard-working artisan who only just earns enough to
keep herself going."

M_SHOP_KEEPER(50, SEX_FEMALE, RACE_HUMAN)
money 10 IRON_PIECE, 2 COPPER_PIECE
exp 0

special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"lth_cap@midgaard 1 5",
"lth_gloves@midgaard 1 5",
"lth_sleeves@midgaard 1 5",
"lth_jerkin@midgaard 1 5",
"lth_pants@midgaard 1 5",
"lth_boots@midgaard 1 5",
"hlth_cap@midgaard 1 5",
"hlth_gloves@midgaard 1 5",
"slth_sleeves@midgaard 1 5",
"slth_jerkin@midgaard 1 5",
"slth_pants@midgaard 1 5",
"leather_tool@midgaard 1 5",
"hlth_boots@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_ARMOR+"",
110,60,286720,"","");

dilcopy resize_func@midgaard (ITEM_ARMOR, ITEM_WORN, ITEM_WORN,
ARM_LEATHER,ARM_HLEATHER,3*IRON_MULT,"leather worker");
special SFUN_TEACH_INIT
"&lskills;0;
$1n tells you, 'I have never heard of such a skill.';
$1n tells you, 'I do not know how to teach this skill.';
$1n tells you, 'You haven't got %s for me.';
$1n tells you, 'You haven't got %d skill points.';
$1n tells you, 'I can not teach you any more';
$1n tells you, 'You must be unaffected by magic, otherwise I can't teach you';
$1n tells you, 'Remove all equipment, please.';

 1;   100; resize leather                   ;   50;  500;   5; 10;      0;
"


end

                              gnome

names {"gnome", "Esmerelda"}
title "Esmerelda"
descr "Esmerelda the Gnome is here, ready to trade with magic items."
extra {} "She is small, but has an enourmous nose."

M_SHOP_KEEPER(50, SEX_FEMALE, RACE_GNOME)
money 10 IRON_PIECE, 3 COPPER_PIECE
exp 0
position POSITION_SITTING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"nightshade@midgaard 1 5",
"rose_bouquet@midgaard 1 5",
"p_rpoison@midgaard 1 5",
"p_cdisease@midgaard 1 5",
"p_dalignment@midgaard 1 5",
"p_dinvisible@midgaard 1 5",
"scroll_clight@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_SCROLL+""+ITEM_WAND+""+ITEM_POTION+""+ITEM_STAFF+"",
110,60,286720,"","");

end



                             jeweller

names {"jeweller", "Janet"}
title "Janet"
descr "Janet the Jeweller is standing behind the desk."
extra {} "She has a content although watchful look on her face."

M_SHOP_KEEPER(50, SEX_FEMALE, RACE_HUMAN)
money 10 IRON_PIECE, 3 COPPER_PIECE, 1 SILVER_PIECE
exp 0
position POSITION_SITTING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"goldring@midgaard 1 5",
"silverring@midgaard 1 5",
"pendant@midgaard 1 5",
"amethyst@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_TREASURE+"",
110,60,286720,"","");


dilcopy resize_func@midgaard (ITEM_TREASURE,ITEM_OTHER,ITEM_WORN,
                             ARM_CLOTHES,ARM_CLOTHES,SILVER_MULT,
                             "jeweler");
end

                             sailor

names {"sailor", "Colin"}
title "Colin"
descr "Colin the Sailor is standing here, selling boats."
extra {}
"He's old, retired years ago, and now spends his old age selling boats.
He looks weather-beaten and must surely have eaten more sharks than you have
killed peas."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 2 COPPER_PIECE
exp 0
position POSITION_SITTING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"raft@midgaard 1 5",
"canoe@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_BOAT+"",
110,60,286720,"","");

end


                             carpenter

names {"carpenter", "Calvin"}
title "Calvin"
descr
"Calvin the Carpenter is here, planing boards for a coffin."
extra {}
"He seems quite busy."
M_SHOP_KEEPER(8, SEX_MALE, RACE_HUMAN)
end


                           mortician

names {"mortician", "Marty"}
title "Marty"
descr "Marty the Mortician is standing here, smirking softly."
extra {} "He is a pale man dressed in black clothes, fit for funeral."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 2 COPPER_PIECE
exp 0
special SFUN_WHISTLE
dilcopy shopkeeper@function(
{
"coffin@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_CONTAINER+"",
110,60,286720,"","");

end


                            pet_boy

names {"pet shop boy","boy"}
title "the pet shop boy"
descr "A Pet Shop boy is here, humming gently."
extra {} "He is young and close-cropped and looks quite happy."

M_SHOP_KEEPER(7, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 2 COPPER_PIECE
end

   mid_clerk

names {"clerk"}
title "Storage Clerk"
descr "The storage clerk stands here waiting to serve you."
extra {}
"The storage clerk is wearing a leather apron which is quite stained.
He looks at you with as half cocked eye as if awaiting your request."
M_HUMAN_WARRIOR_SWORD(185,SEX_MALE)
romflags {CHAR_PROTECTED}

extra {"$storage clerk"} ""
end


                            banker

names {"Smith"}
title "Smith"
descr "Smith the Banker is here, sitting behind the counter."
extra {} "He has a very serious look on his face."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 2 COPPER_PIECE, 1 GOLD_PIECE
special SFUN_WHISTLE
special SFUN_BANK
flags {UNIT_FL_NO_TELEPORT}

exp 0
end



                            postman

names {"postman", "Jim"}
title "Jim"
descr "Jim the Postman is standing here."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 2 COPPER_PIECE
special SFUN_WHISTLE
dilcopy mail@mail();

exp 0
end


                             blacksmith

/* He shall evaluate weapons and armours, and maybe repair them too */
names {"blacksmith", "smith", "Sam"}
title "the blacksmith"
descr "The venerable Sam Blacksmith is here."
extra {}
"The smith is so old and experienced, that he can judge the quality of your
armour and weapons merely by glancing at it.  He looks as if he has retired
from being an active smith, though."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 10 IRON_PIECE, 2 COPPER_PIECE
exp 0
dilcopy resize_func@midgaard (ITEM_ARMOR, ITEM_WEAPON, ITEM_SHIELD,
ARM_CHAIN,ARM_PLATE,COPPER_MULT,"smith");
special SFUN_TEACH_INIT
"&lskills;0;
$1n tells you, 'I have never heard of such a skill.';
$1n tells you, 'I do not know how to teach this skill.';
$1n tells you, 'You haven't got %s for me.';
$1n tells you, 'You haven't got %d skill points.';
$1n tells you, 'I can not teach you any more';
$1n tells you, 'You must be unaffected by magic, otherwise I can't teach you';
$1n tells you, 'Remove all equipment, please.';

 1;   100; resize metal                   ;   50;  500;   5; 10;      0;
"

end

/* -------------------------- BARTENDERS -------------------------- */

                            boar_tender

/* For the Grunting Boar Inn */
names {"bartender", "Bill"}
title "Bill"
descr "Bill watches you calmly, while he skillfully mixes a drink."
extra {} "He is a tired-looking bartender, who hates trouble in his bar."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 20 IRON_PIECE
exp 0
dilcopy shopkeeper@function(
{
"beer_barrel@midgaard 1 5",
"beer_bottle@midgaard 1 5",
"tuborg@udgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_CONTAINER+"",
110,60,286720,"","");

end


                            filthy_tender

names {"Filthy"}
title "Filthy"
descr "Filthy is standing here, eager to serve you a special drink."
extra {}
"Filthy looks real, erhm, dirty.  He likes to keep his costumers happy, as
long as they don't want him to take a bath."

M_SHOP_KEEPER(50, SEX_MALE, RACE_HUMAN)
money 20 IRON_PIECE
exp 0
dilcopy shopkeeper@function(
{
"firebreather@midgaard 1 5",
"speciality@midgaard 1 5",
"tuborg@udgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_CONTAINER+"",
110,60,286720,"","");

end


                               madame

names {"madame"}
title "Madame"
descr "Madame is here, eyeing you suspiciously."
extra {} "She is old and fat an looks quite ugly."

M_SHOP_KEEPER(7, SEX_FEMALE, RACE_HUMAN)
money 20 IRON_PIECE
end

                            maid_tender

names {"maid", "Jennifer"}
title "Jennifer"
descr "Jennifer is waiting for your order."
extra {}
"She is very beautiful with golden hair, and bright blue eyes.  A good reason
for coming here more often."

M_SHOP_KEEPER(50, SEX_FEMALE, RACE_HUMAN)
money 20 IRON_PIECE
exp 0
dilcopy shopkeeper@function(
{
"water_cup@midgaard 1 5",
"coffe_cup@midgaard 1 5",
"tea_cup@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_CONTAINER+"",
110,60,286720,"","");

end


                          guard_sales

names {"Lenka"}
title "Lenka"
descr "Lenka is here waiting for your order."
M_SHOP_KEEPER(50, SEX_FEMALE, RACE_HUMAN)
money 20 IRON_PIECE
exp 0
dilcopy deputy_check@function();
dilcopy shop_q_block@function(POLICE_ACADEMY, "say Deputies only!");
dilcopy shopkeeper@function(
{
"cuffs@midgaard 1 5"
},{
"   $1n says, 'I've got no such item!' ",
"   $1n says, '$3n, you haven't even got it!' ",
"   $1n says, 'I can't afford it, sorry!' ",
"   $1n says, '$3n, you can't afford $2n' ",
"   $1n says, 'That's %s for $2n' ",
"   $1n says, 'Thank you $3n, here are %s for $2n.' ",
"$1n says, 'I don't seem to have that many in my stock'",
"$1n says, 'I'm on my break, GET LOST!'",
"$1n says, 'I have no use for a $2n'",
"$1n says, 'Sorry, I can't afford it'"},
{"4","12","13","23"},
""+ITEM_CONTAINER+"",
110,60,286720,"","");

end



/* -------------------------- THE LAW -------------------------- */

                          teach_spell

names {"Arjuna", "teacher"}
title "Arjuna"
descr "Arjuna the spell teacher is sitting here behind a desk."
extra {}
"She looks like a strongly built scholar."
romflags {CHAR_PROTECTED, CHAR_DETECT_INVISIBLE}
exp 0
M_HUMAN_MAGE_ELECTRICITY(85,SEX_FEMALE, "lightning bolt")
alignment 1000

special SFUN_WHISTLE
dilcopy rescue@function("guard / mayor");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
special SFUN_ACCUSE

dilcopy deputy_check@function();
dilcopy teach_q_block@function(POLICE_ACADEMY, "say Deputies only!");

#define _SPELL
#include "guilddef.h"
#undef _SPELL

end



                          teach_skill

names {"Tenzin", "teacher"}
title "Tenzin"
descr "Tenzin the skill teacher is sitting here stretching at a wall bar."
extra {}
"He looks like a damn good teacher."
romflags {CHAR_PROTECTED, CHAR_DETECT_INVISIBLE}
exp 0
M_HUMAN_THIEF_POLE(85, SEX_MALE)
alignment 1000

special SFUN_WHISTLE
dilcopy rescue@function("guard / mayor");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
special SFUN_ACCUSE

dilcopy deputy_check@function();
dilcopy teach_q_block@function(POLICE_ACADEMY, "say Deputies only!");

#define _SKILL
#include "guilddef.h"
#undef _SKILL

end



                          captain

names {"captain"}
title "the Captain"
descr "The Captain of the Guard is here."
extra {}
"He looks like a tall, muscular, athletic fighter. You notice that there is
an electric blue aura around his black eyes."
romflags {CHAR_PROTECTED, CHAR_DETECT_INVISIBLE}
exp 0
M_HUMAN_WARRIOR_SWORD(85,SEX_MALE)
alignment 1000

special SFUN_WHISTLE
dilcopy rescue@function("guard / mayor");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
special SFUN_REWARD_GIVE
special SFUN_ACCUSE
dilcopy deputy_check@function();

dilbegin deputy_join();
var
 u : unitptr;

code
{
  :loop:
  unsecure(u);
  wait(SFB_CMD, command("join"));

  if (activator.type != UNIT_ST_PC)
    goto loop;

  u := activator;
  secure(u, loop);

  block;

  if (POLICE_ACADEMY in u.quests)
  {
     exec("say You're already a deputy, "+u.name+", now stop bothering me "+
   "and go catch some criminals.", self);
     goto loop;
  }

  if ((POLICE_BANNED in u.quests) or (u.crimes > 0) or
      isset(u.charflags, CHAR_OUTLAW))
  {
     exec("say You have a criminal record, we can not accept you as a "+
   "deputy "+u.name+".",self);
     goto loop;
  }

  exec("say We are glad to honour you as a deputy, "+u.name+".", self);
  pause;
  exec("say Clearly we need a stronger law these days as the amount of "+
"violence seems to increase every day.", self);
  pause;
  exec("say A word of warning is needed, if you break any laws, your "+
"jurisdiction will immediately be revoked, and all knowledge "+
"taught to you will forever be gone.", self);
  pause;
  exec("handshake "+u.name, self);
  addextra(u.quests, {POLICE_ACADEMY}, "");
}
dilend

dilcopy captain@midgaard("jail@midgaard");
end


                           capt_follow

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here."
extra {} "A fairly big, content-looking cityguard."
exp 0
romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_CLUB(60, SEX_MALE)   /* He shall use a flail */
alignment 400
money 2 IRON_PIECE

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
end


                            sent_guard

/* This guard is supposed to guard various shopkeepers, i.e.
Jeweller/Banker */
names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here."
extra {} "A fairly big, content looking cityguard."
exp 0
romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(65, SEX_MALE)   /* He shall use a polearm */
alignment 400
money 5 IRON_PIECE

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
end

                          patrol_guard1

/* A more or less randomly moving guard */
names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here."
extra {}
"A big, strong, helpful, trustworthy guard.  He looks as though he's keeping
an eye on the townsfolk."
exp 0
romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_SWORD(57, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 3 IRON_PIECE

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
/*                                                                     */
/* Route for a patroling guard to visit all shops and important places */
/*                                                                     */
dilbegin patrol1();
code
{
  on_activation((self.position <= POSITION_SLEEPING) or
  (self.position == POSITION_FIGHTING), skip);

  :start:
  walkto(findroom("midgaard/cth_sanctum"));
  walkto(findroom("midgaard/grub_inn"));
  walkto(findroom("midgaard/baker_shop"));
  walkto(findroom("midgaard/pet_shop"));
  walkto(findroom("midgaard/ironmon_shop"));
  walkto(findroom("midgaard/boat_shop"));
  walkto(findroom("midgaard/warehouse"));
  walkto(findroom("midgaard/fish_shop"));
  walkto(findroom("midgaard/mortician_shop"));
  walkto(findroom("midgaard/carp_shop"));
  walkto(findroom("midgaard/col_arena"));
  walkto(findroom("midgaard/weapon_shop"));
  walkto(findroom("midgaard/bsmith_shop"));
  walkto(findroom("midgaard/armour_shop"));
  walkto(findroom("midgaard/jewel_shop"));
  walkto(findroom("midgaard/bank"));
  walkto(findroom("midgaard/park_cafe"));
  walkto(findroom("midgaard/post_office"));
  walkto(findroom("midgaard/butcher_shop"));
  walkto(findroom("midgaard/leather_shop"));
  walkto(findroom("midgaard/tailor_shop"));
  walkto(findroom("midgaard/accuse_room"));
  walkto(findroom("midgaard/grunting_inn"));
  walkto(findroom("midgaard/greeng_shop"));
  walkto(findroom("midgaard/th_library"));
  walkto(findroom("midgaard/mag_hall"));
  goto start;
}
dilend
end


                          patrol_guard2

/* A more or less randomly moving guard */
names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here."
extra {}
"A big, strong, helpful, trustworthy guard.  He looks as though he's keeping
an eye on the townsfolk."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_SWORD(59, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 6 IRON_PIECE
exp 0
special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilcopy wander_zones@function("midgaard", 40, 1, 1);
end

                          ngate_dguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 8 IRON_PIECE
exp 0
position POSITION_SLEEPING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
dilbegin guard1();
var
 i   : integer;
code
{
  on_activation((self.position == POSITION_FIGHTING), skip);

 :start:
 heartbeat := WAIT_SEC*5;
pause;
 if(mudhour == 5)
 {
  exec("wake", self);
  pause;
  exec("yawn", self);
  pause;
  exec("say Time to get going guys!", self);
  pause;
  walkto(findroom("in_ngate@midgaard"));
 }

 if(mudhour == 18)
 {
  i := rnd(1,3);
  if (i == 1) goto bar1;
  if (i == 2) goto bar2;
  if (i == 3) goto bar3;
  else goto start;

  :bar1:
  pause;
  walkto(findroom("grunting_inn@midgaard"));
  pause;
  exec("buy beer", self);
  pause;
  exec("drink beer", self);
  pause;
  walkto(findroom("guard_dorm@midgaard"));
  exec("yawn", self);
  pause;
  exec("sleep", self);
  goto start;

  :bar2:
  pause;
  walkto(findroom("grub_inn@midgaard"));
  pause;
  exec("buy firebreather", self);
  pause;
  exec("drink firebreather", self);
  pause;
  walkto(findroom("guard_dorm@midgaard"));
  exec("yawn", self);
  pause;
  exec("sleep", self);
  goto start;


  :bar3:
  pause;
  walkto(findroom("park_cafe@midgaard"));
  pause;
  exec("buy coffee", self);
  pause;
  exec("drink coffee", self);
  pause;
  walkto(findroom("guard_dorm@midgaard"));
  exec("yawn", self);
  pause;
  exec("sleep", self);
  goto start;
 }
}
dilend
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
end

                          ngate_nguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 5 IRON_PIECE
exp 0
position POSITION_SLEEPING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilbegin guard2();
var
 i   : integer;
code
{
  on_activation((self.position == POSITION_FIGHTING), skip);

 :start:
 heartbeat := WAIT_SEC*5;
pause;
 if(mudhour == 17)
 {
  exec("wake", self);
  pause;
  exec("yawn", self);
  pause;
  exec("say Time to get going guys!", self);
  pause;
  walkto(findroom("in_ngate@midgaard"));
 }

 if(mudhour == 6)
 {
  i := rnd(1,3);
  if (i == 1) goto bar1;
  if (i == 2) goto bar2;
  if (i == 3) goto bar3;
  else goto start;

  :bar1:
  pause;
  walkto(findroom("grunting_inn@midgaard"));
  pause;
  exec("buy beer", self);
  pause;
  exec("drink beer", self);
  pause;
  walkto(findroom("guard_dorm@midgaard"));
  exec("yawn", self);
  pause;
  exec("sleep", self);
  goto start;

  :bar2:
  pause;
  walkto(findroom("grub_inn@midgaard"));
  pause;
  exec("buy firebreather", self);
  pause;
  exec("drink firebreather", self);
  pause;
  walkto(findroom("guard_dorm@midgaard"));
  exec("yawn", self);
  pause;
  exec("sleep", self);
  goto start;


  :bar3:
  pause;
  walkto(findroom("park_cafe@midgaard"));
  pause;
  exec("buy coffee", self);
  pause;
  exec("drink coffee", self);
  pause;
  walkto(findroom("guard_dorm@midgaard"));
  exec("yawn", self);
  pause;
  exec("sleep", self);
  goto start;
 }
}
dilend
end

                          egate_dguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 5 IRON_PIECE

position POSITION_SLEEPING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilcopy guard1();
end

                          egate_nguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 5 IRON_PIECE
exp 0
position POSITION_SLEEPING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilcopy guard2();
end

                          wgate_dguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 5 IRON_PIECE
position POSITION_SLEEPING
default POSITION_SITTING
exp 0
special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilcopy guard1();
end

                          wgate_nguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 5 IRON_PIECE
exp 0
position POSITION_SLEEPING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilcopy guard2();

end

                          sgate_dguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."
exp 0
romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 5 IRON_PIECE

position POSITION_SLEEPING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilcopy guard1();
end

                          sgate_nguard

names {"cityguard","guard"}
title "the Cityguard"
descr "A cityguard is here, guarding the gate."
extra {} "A big, strong, helpful, trustworthy guard."

romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_POLE(60, SEX_MALE)   /* He shall use a polearm */
alignment 400  /* Just above neutral */
money 5 IRON_PIECE
exp 0
position POSITION_SLEEPING
default POSITION_SITTING

special SFUN_WHISTLE
dilcopy rescue@function("guard / captain / mayor");
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilcopy guard2();
end

/* -------------------------- Grubby Inn ----------------------------- */

                               fanny
names {"Fanny"}
title "Fanny"
descr "Fanny is here, dressed in french underwear."
extra {} "She is young and very pretty."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(7, SEX_FEMALE, RACE_HUMAN)
alignment 100
money 5 IRON_PIECE
end

                              giacomo

names {"Giacomo", "Casanova"}
title "Giacomo"
descr "Giacomo Casanova is here, dressed in leather underpants."
extra {} "He is young and very handsome, although a bit vulgar."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(7, SEX_MALE, RACE_HUMAN)
alignment 200
money 5 IRON_PIECE
end


/* -------------------------- CITY SERVICES -------------------------- */

                             receptionist

names {"receptionist", "mrs. Ramsgate", "Ramsgate"}
title "Mrs. Ramsgate"
descr
"Mrs. Ramsgate is standing behind the reception counter."
extra {} "You notice a tired look in her face."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(9, SEX_FEMALE, RACE_HUMAN)
alignment 900
money 5 IRON_PIECE
end

                               janitor1

names {"janitor"}
title "the Janitor"
descr "A janitor is walking around, cleaning up."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(5, SEX_MALE, RACE_HUMAN)
alignment 900
money 5 IRON_PIECE

dilcopy janitors(15);

dilbegin janitor1();

code
{
  on_activation((self.position == POSITION_FIGHTING), skip);
  heartbeat := WAIT_SEC*10; // heartbeat for pickup is 15..

  :start:
  walkto(findroom("wall_rd14@midgaard"));
  walkto(findroom("elm_street2@midgaard"));
  walkto(findroom("park_cafe@midgaard"));
  walkto(findroom("palace_sq@midgaard"));
  walkto(findroom("glad_rd2@midgaard"));
  walkto(findroom("wharf2@midgaard"));
  walkto(findroom("n_prom2@midgaard"));
  walkto(findroom("wall_rd11@midgaard"));
  goto start;
}
dilend
end

                               janitor2

names {"janitor"}
title "the Janitor"
descr "A janitor is walking around, cleaning up."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(6, SEX_MALE, RACE_HUMAN)
alignment 900
money 5 IRON_PIECE

dilcopy janitors(15);
dilcopy wander_zones@function("midgaard", 20, 1, 1);
end


                              librarian

names {"librarian"}
title "the Librarian"
descr "A Librarian is here, reading a book."
extra {}
"She looks very old and dusty."
romflags {CHAR_PROTECTED}
M_AVG_HUMAN(10, SEX_FEMALE, RACE_HUMAN)
alignment 900
money 5 IRON_PIECE
#define LIB_ONGOING "Librarian Quest Ongoing"
#define LIB_COMPLETE "Librarian Quest Complete"
#define SCRIBE_ONGOING "Scribe Quest Ongoing"

dilbegin li1();
var
 pcname   : string;
 item     : unitptr;
 pc       : unitptr;
 i        : integer;
 exdp     : extraptr;

code
{

 :init:
 heartbeat := PULSE_SEC*5;
 on_activation((self.position <= POSITION_SLEEPING) or
       (self.position == POSITION_FIGHTING), skip);

 :start:
 wait(SFB_CMD, (activator.type == UNIT_ST_PC) and (not
     command("give")) and ((SCRIBE_ONGOING in
  activator.quests)));
 if(LIB_COMPLETE in activator.quests)
  goto waitawhile;

 pc := activator;
 secure(pc, lostpc);

 if(not(LIB_ONGOING in pc.quests))
   {
    pause;
    exec("say You look like one who is on a quest.", self);
    pause;
    exec("say I have a pair of spectacles that I could " +
  "give you in return for some things I need.", self);
    pause;
    exec("say would you like to help me?", self);
    pause;
    exec("say Please nod or shake.", self);

    i := 0;
    while (i < 5)
    {
wait(SFB_CMD, activator #= pc);

if(command("nod"))
{
  goto quest_accepted;
}
else if(command("say"))
{
  pause;
  exec("say Nod if you want to continue, shake " +
       "if not.", self);
}
else if(command("shake"))
goto no_quest;
i := I + 1;
    }

 :no_quest:
 pause;
 exec("say Fine, good luck in your travels.", self);
 unsecure(pc);
 goto waitawhile;

 :quest_accepted:
 pause;
 exec("say I am looking for something to write with.",
   self);
 pause;
 exec("say A book containing unlimited knowledge.", self);
 pause;
 exec("say I also search for a little information "+
      "relating to a group of people named the "+
  "Sanctuarians.", self);
 pause;
 exec("say Bring me these things and I can give you the "+
  "glasses I have.", self);
 pause;
 exec("say I also know what you seek, and can tell you that there are "+
      "between six and eight scrolls containing the language of "+
      "the ancients", self);

 addextra(pc.quests, {LIB_ONGOING}, "");
 unsecure(pc);
 goto start;
 }
 else
 {
   exdp := LIB_ONGOING in pc.quests;
   if (("quill" in exdp.names)and
("book of knowledge" in exdp.names)and
   ("vellum scrap" in exdp.names))
   {
     pause;
     subextra(pc.quests, LIB_ONGOING);
     addextra(pc.quests, {LIB_COMPLETE}, "");
     exec("say Thank you " +pc.name+ ".", self);
     item := load("obj_15@pit");
     link(item, pc);
     pause;
 exec("say You have helped me greatly.", self);
 pause;
 exec("say here are the glasses.", self);
 pause;
 act("The librarian gives you a pair of glasses.",
 A_SOMEONE, pc, null, null, TO_CHAR);

 act("The librarian give a pain of glasses to $1n.",
 A_SOMEONE, self.outside, null, null, TO_ROOM);
   }
 }

     unsecure(pc);
     goto start;

:waitawhile:
heartbeat := PULSE_SEC*60;
pause;
goto init;

:lostpc:
exec("say I guess the quest wasn't so important.",
self);
pause;
exec("sigh", self);
goto start;
}
dilend

dilbegin li2();
var
 pc     : unitptr;
 item   : unitptr;
 exdp   : extraptr;

 code
 {
   heartbeat := PULSE_SEC*5;
   on_activation((self.position <= POSITION_SLEEPING) or
       (self.position == POSITION_FIGHTING), skip);

   :start:
   wait(SFB_CMD, command("give") and
(activator.type == UNIT_ST_PC));

   :give:
   if (not(LIB_ONGOING in activator.quests))
goto start;

   pc := activator;
   item := self.inside;
   secure(pc, labsecure);
   secure(item, labsecure);

   wait(SFB_CMD | SFB_TICK, TRUE);
   if(not(item #= self.inside))
   {
     unsecure(item);
     exdp := LIB_ONGOING in pc.quests;

    if("quill" in self.inside.name)
    {
 addstring(exdp.names, "quill");
 exec("say This will help me write.", self);
 destroy(self.inside);
    }
    else if("book of knowledge" in self.inside.name)
    {
 addstring(exdp.names, "book of knowledge");
 exec("say Ahh, the Book of Knowledge.", self);
 destroy(self.inside);
    }
    else if("vellum scrap" in self.inside.name)
    {
 addstring(exdp.names, "vellum scrap");
 exec("say The tales I search for...", self);
 destroy(self.inside);
    }
    else
    {
 exec("say This is not what I am looking " +
      "for " +pc.name + ".", self);
 pause;
 exec("say Please have it back.", self);
 link(self.inside, pc);
    }
   }
   unsecure(pc);

   if((command("give")) and
      (activator.type == UNIT_ST_PC))
   {
     goto give;
   }
     else
goto start;

   :labsecure:
   exec("sigh", self);
   goto start;

}
dilend

end

/* -------------------------- CITY RESIDENTS -------------------------- */


                                 crier
names {"crier"}
title "the Town Crier"
descr "The Town Crier is here, weeping quietly."
extra {} "He is very good at his job - completely dissolved in tears."

romflags {CHAR_PROTECTED, CHAR_WIMPY}
M_AVG_HUMAN(11, SEX_MALE, RACE_HUMAN)
alignment 900
money 5 IRON_PIECE

dilcopy wander_zones@function("midgaard", 60, 1, 0);
end


                          temple_guard

/* A more or less randomly moving guard */
names {"temple guard", "guard"}
title "the Temple Guard"
descr "A temple guard is here."
extra {}
"He looks quite nice when he stands still."
romflags {CHAR_PROTECTED}
M_HUMAN_WARRIOR_SWORD(60, SEX_MALE)   /* He shall use a polearm */
alignment 0  /* Just above neutral */
money 5 IRON_PIECE
exp 0
special SFUN_WHISTLE
dilcopy arrest_check@midgaard("accuse_room@midgaard");
special SFUN_PROTECT_LAWFUL time PULSE_SEC*60 bits SFB_RANTIME
dilbegin temple_guard();
var
i : integer;
code
{
  on_activation((self.position == POSITION_FIGHTING), skip);
  heartbeat := WAIT_SEC*5;
  :start:
  i := rnd(1,4);
  if(i == 1) goto one;
  if(i == 2) goto two;
  if(i == 3) goto three;
  if(i == 4) goto four;
  else goto start;

  :one:
  walkto(findroom("cth_sw_tower@midgaard"));
  pause;
  exec("emote stands guard.", self);
  goto start;

  :two:
  walkto(findroom("cth_se_tower@midgaard"));
  pause;
  exec("emote stands guard.", self);
  goto start;

  :three:
  walkto(findroom("cth_sanctum@midgaard"));
  pause;
  exec("emote stands guard.", self);
  goto start;

  :four:
  walkto(findroom("cth_square1@midgaard"));
  pause;
  exec("emote stands guard.", self);
  goto start;

}
dilend
end

                               quasimodo

names {"Quasimodo", "Modo"}
title "Quasimodo"
descr "Quasimodo is silently watching you."
extra {}
"He is a human, and yet he has the face of a troll.  His old, dirty robe
makes a bad job hiding a hideous-looking hunch on his back. He seems very
sad."

romflags {CHAR_PROTECTED, CHAR_WIMPY}
M_AVG_HUMAN(15, SEX_MALE, RACE_HUMAN)
alignment 1000
money 5 IRON_PIECE

dilbegin quasimodo();
var
 u:unitptr;
 i:integer;

code
{
  heartbeat := WAIT_SEC*15;
  on_activation((self.position <= POSITION_SLEEPING) or
  (self.position == POSITION_FIGHTING), skip);

  /* Quasi shall react only on ticks (variable time)  */
  wait(SFB_TICK | SFB_RANTIME, TRUE);

  :start:
  walkto(findroom("midgaard/cth_sw_tower"));
  if (self.position > POSITION_SLEEPING)
  {
     exec("sigh", self);
     pause;
     exec("sit", self);
     pause;
     exec("yawn", self);
     pause;
     exec("sleep", self);
     pause;
  }

  heartbeat := WAIT_SEC*SECS_PER_MUD_HOUR/2;
  while ((mudhour != 4) and (mudhour != 16))
  {
     exec("snore", self);
     pause;
  }
  heartbeat := WAIT_SEC*15;

  exec("wake", self);
  pause;

  walkto(findroom("midgaard/cth_altar"));
  exec("sulk", self);
  pause;

  u := findunit(self, "bronze key", FIND_UNIT_INVEN | FIND_UNIT_EQUIP, null);
  if (u #= null)
  {
     exec("cry", self);
     pause;
     exec("say swomeone stwole our kwey!", self);
     pause;
     goto start;
  }

  exec("unlock east door", self);
  pause;
  exec("open east door", self);
  pause;
  exec("east", self);
  pause;
  exec("close west door", self);
  pause;
  exec("lock west door", self);
  pause;

  walkto(findroom("midgaard/cth_n_tower"));
  exec("bounce", self);
  pause;

  heartbeat := WAIT_SEC*SECS_PER_MUD_HOUR/2;
  while ((mudhour != 6) and (mudhour != 18))
    pause;
  heartbeat := WAIT_SEC*15;

  exec("giggle", self);
  pause;
  exec("emote trys to ring the bells.", self);
  pause;
  exec("clap", self);
  pause;

  walkto(findroom("midgaard/cth_n_stairs1"));
  exec("sulk", self);
  pause;
  exec("unlock west door", self);
  pause;
  exec("open west door", self);
  pause;
  exec("west", self);
  pause;
  exec("close east door", self);
  pause;
  exec("lock east door", self);
  pause;

  exec("sniff", self);
  pause;
  goto start;
}
dilend
end


                              mercenary

names {"assassin"}
title "the Assassin"
descr "A mean-looking assassin is standing here."
extra {}
"He looks like he'd do anything for gold, plenty of gold. A logo is
printed on his armour, it says: 'Try Offer and Contract.'"

M_HUMAN_WARRIOR_SWORD(10, SEX_MALE)   /* He shall use a polearm */
alignment -400
money 5 IRON_PIECE, 2 SILVER_PIECE
special SFUN_SCAVENGER time 60 bits SFB_RANTIME
dilcopy wander_zones@function("midgaard", 60, 1, 0);
special SFUN_MERCENARY_HIRE
end



                              drunk

names {"drunk"}
title "the Drunk"
descr "A singing, happy Drunk."
extra {} "A drunk who seems to be too happy, and to carry too much money."

M_AVG_HUMAN(7, SEX_MALE, RACE_HUMAN)
alignment 400
money 5 COPPER_PIECE

special SFUN_RANDOM_GLOBAL_MOVE time WAIT_SEC*60 bits SFB_RANTIME
end


                              beggar

names {"beggar"}
title "the Beggar"
descr "A beggar is here, asking for a few coins."
extra {}
"The beggar is dirty and dressed in smelly rags.  Her hair is wispy and she
looks like she is fed up with life."
M_AVG_HUMAN(7, SEX_FEMALE, RACE_HUMAN)
alignment 400
end



                               sexton

names {"sexton"}
title "the Sexton"
descr "A Sexton is sitting here, drinking hot tea."
extra {} "The Sexton looks like he is relaxing after another gravedigging
job."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(9, SEX_MALE, RACE_HUMAN)
alignment 800
money 5 IRON_PIECE
end


/* -------------------------- CITY ANIMALS -------------------------- */

                                horse
names {"riding horse","horse"}
title "a riding horse"
descr
"A beautiful white riding horse is here."
inside_descr
"You are on a beautiful white riding horse."

flags {UNIT_FL_TRANS}
manipulate {MANIPULATE_ENTER}

M_HORSE_MEDIUM(SEX_FEMALE)
alignment 400
capacity 10000
end

                               fido_dog

names {"Fido","dog"}
title "the Beastly Fido"
descr "Beastly Fido is here."
extra {}
"Fido is a small dog with a foul smell, and pieces of flesh stuck between
his teeth."

romflags {CHAR_WIMPY}
M_DOG_BEAGLE(SEX_MALE)
alignment -200
money 5 IRON_PIECE
/*
dilcopy fido();
*/
dilcopy fido@function("","");
dilcopy wander_zones@function("midgaard", 60, 0, 0);
end


                               odif_god

names {"Odif","Yltsaeb"}
title "the Odif Yltsaeb"
descr "Odif Yltsaeb is here, walking backwards."
extra {} "Odif is a small dog that has been reversed by some insane god."

romflags {CHAR_WIMPY}
M_DOG_BEAGLE(SEX_MALE)
alignment -100
money 5 IRON_PIECE
/*
dilcopy fido();
*/
dilcopy fido@function("","");
dilcopy wander_zones@function("midgaard", 60, 0, 0);
end

                                swan

names {"swan"}
title "the Swan"
descr "A swan is swimming around in the pond."
extra {} "The white swan is very elegant."

M_BIRD_TINY(SEX_FEMALE)
money 5 IRON_PIECE
end

                              duckling

names {"duckling"}
title "the Duckling"
descr "A duckling is swimming around in the pond."
extra {} "The duckling is adorable, it looks most of all like a tiny furball."

M_BIRD_TINY(SEX_MALE)
alignment 1000
money 5 IRON_PIECE
end



                               sparrow

names {"sparrow"}
title "the Sparrow"
descr "A sparrow is flapping around on the ground."
extra {} "The sparrow looks like it is enjoying life."

romflags {CHAR_WIMPY}
M_BIRD_TINY(SEX_NEUTRAL)
money 5 IRON_PIECE

dilcopy wander_zones@function("midgaard", 120, 0, 0);
end

                                raven

names {"black raven", "raven"}
title "the Raven"
descr "A black raven is hopping around."
extra {} "Its feathers are matt black. It has a rather large beak!"

romflags {CHAR_WIMPY}
M_BIRD_TINY(SEX_NEUTRAL)
money 5 IRON_PIECE

dilcopy wander_zones@function("midgaard", 100, 0, 0);
end

                                duck

names {"duck"}
title "the Duck"
descr "A duck is here, quacking happily."
extra {} "The duck is quite fat.  It looks like it is enjoying life."

M_BIRD_TINY(SEX_NEUTRAL)
money 5 IRON_PIECE

dilcopy wander_zones@function("midgaard", 110, 0, 0);
end



/* -------------------------- PET SHOP ANIMALS -------------------------- */

                                 papi_kitten

names {"kitten"}
title "the Kitten"
descr "A small loyal Kitten is here."
extra {} "The Kitten looks like a cute, little, fierce fighter. She is a
special friend of the great god 'Papi'"
M_CAT(SEX_FEMALE)
end

                                 puppy

names {"puppy"}
title "the Puppy"
descr "A small loyal Puppy is here."
extra {} "The Puppy looks like a cute, little, fierce fighter."
M_DOG_PUPPY(SEX_MALE)
alignment +1000
end

                                beagle

names {"beagle", "Sven"}
title "the Beagle"
descr "A small, quick, loyal Beagle is here."
extra {}
"The Beagle looks like a fierce fighter, there is a mark in his ear.
You notice that he looks hungry."

extra {"ear"}
 "It says `Sven'.  Must be his name, for sure."

M_DOG_BEAGLE(SEX_MALE)
end

                              rottweiler

names {"rottweiler"}
title "the Rottweiler"
descr "A large, loyal Rottweiler is here."
extra {} "The Rottweiler looks like a strong, fierce fighter."

M_DOG_ROTTWEILER(SEX_MALE)
end

                                wolf

names {"wolf"}
title "the Wolf"
descr "A large, trained grey Wolf is here."
extra {} "The Wolf looks like a strong, fearless fighter."
M_WOLF_GREY(SEX_MALE)
end


/* -------------------------- CITY HALL -------------------------- */


                             secretary

names {"secretary"}
title "the Secretary"
descr "A secretary is sitting at the desk, typing away on the typewriter."
extra {} "She looks very busy."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(11, SEX_FEMALE, RACE_HUMAN)
alignment 300
money 5 IRON_PIECE

end

                               mayor

names {"mayor"}
title "the Mayor"
descr "The Mayor is sitting in his huge chair, snoring loudly."
extra {} "He is a stocky, middle-aged man with thin, grey hair."

romflags {CHAR_PROTECTED}
M_AVG_HUMAN(15, SEX_MALE, RACE_HUMAN)
alignment 900
money 5 IRON_PIECE

special SFUN_REWARD_GIVE
end

%objects

// New Janitors

tbag
names{"trash bag","bag"}
title "a trash bag"
descr "a large trash bag has been dropped here."
extra {}
"&lThis large black bag is commonly used for trash.
There is some writing printed on it."
extra {"writing"}
"&l           &c+w/-------------------\&cw
          &c+w|&cw &c+rM&cridgaard&cw &c+rD&crisposal &c+w|&cw
          &c+w\-------------------/&cw"
CONTAINER_DEF(5000)
type ITEM_CONTAINER
weight 1
manipulate {MANIPULATE_TAKE, MANIPULATE_ENTER, MANIPULATE_HOLD}

dilbegin bag_chkinside();
var
  time : integer;
code
{
  interrupt(SFB_CMD, command("put"), add_time);

  :init:
  heartbeat := PULSE_SEC*1;
  time := 60;

  :start:
while (time > 0)
 {
 wait (SFB_TICK, TRUE);
 time := time - 1;
 }
  if (self.inside != null)
  {
     if (self.inside.type == UNIT_ST_OBJ)
     {
     link(self.inside,findsymbolic("jandump@midgaard"));
     }
     else if (self.inside.type == UNIT_ST_PC)
     {
      link(self.inside, self.outside);
      }
  }


  :add_time:
time := time + 30;
if (time > 300) time := 300;
goto start;
}
dilend
end

// Old Storage, Do not use

  mid_cont
names {"storage container", "midcontainer"}
title "a storage container"
descr "A storage container should not be on the ground."
type ITEM_OTHER
weight 0
CONTAINER_DEF(2000)
end


engraver_sign
names {"large sign","sign"}
title "a large sign"
descr "A large sign sways gently in front of the engraving shop to the east."
extra {}
"&lThe sign proclaims:&c+w
  _   _
  ______________(_))______(_))_____________
[       ]]
[    Veejay's Engraving Services.   ]]
[  ------------------------------------>  ]]
[   Personalize your outfit!   ]]
[     Dazzle your friends!   ]]
[    Suprise your loved one!   ]]
[_________________________________________]]&cw

&f"
weight 20

dilbegin sign_sway();
var
pc : unitptr;
code
{
:start:
heartbeat := PULSE_SEC*3;
wait(SFB_DONE,(activator.type==UNIT_ST_PC));
pc := activator;
secure(pc,gone);
pause;
if (rnd(1,10)>5)
{
act("The $2N squeaks gently as it sways in the weak breeze.",
A_ALWAYS,pc,self,null,TO_ALL);
goto holdon;
}
act("The $2N sways softly in the wind.",
A_ALWAYS,pc,self,null,TO_ALL);
:holdon:
heartbeat:=PULSE_SEC*25;
pause;
:gone:
unsecure(pc);
goto start;
}
dilend
end

                              cuffs

names {"hand cuffs", "cuffs"}
title "a pair of hand cuffs"
descr "A pair of hand cuffs has been left here."
type ITEM_OTHER
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD, MANIPULATE_WEAR_WRIST}
weight 1
cost 4 SILVER_PIECE


dilbegin cuffs();
external
  integer skillresist@function(aa : integer, ad : integer,
                            sa : integer, sd : integer);

var
 deputy : unitptr;
 targ   : unitptr;
 skilla : integer;
 skilld : integer;
 hm     : integer;
 depname: string;
code
{
  :loop:
  unsecure(deputy);
  wait(SFB_CMD, command("cuff"));

  if (activator != self.outside)
    goto loop;

  deputy := activator;
  secure(deputy, loop);

  block;

  if ((deputy.type == UNIT_ST_PC) and (deputy.skills[SKI_CUFF] <= 0))
  {
     act("You must practice first.",
  A_ALWAYS, deputy, null, null, TO_CHAR);
     goto loop;
  }

  if (argument == "")
  {
     act("Cuff who?",
  A_SOMEONE, deputy, null, null, TO_CHAR);
     goto loop;
  }

  targ := findunit(deputy, argument, FIND_UNIT_SURRO, null);

  if (targ == null)
  {
     act("That person is not here!",
         A_SOMEONE, deputy, null, null, TO_CHAR);
     goto loop;
  }

  if (not (targ.type & (UNIT_ST_PC | UNIT_ST_NPC)))
  {
     act("You can't cuff that, silly!", A_SOMEONE, deputy, null, null,
  TO_CHAR);
     goto loop;
  }

  if (targ == deputy)
  {
     act("Cuffing yourself seems like a bad idea.",
         A_HIDEINV, deputy, null, null, TO_CHAR);
     goto loop;
  }

  if (not isset(targ.charflags, CHAR_OUTLAW))
  {
     act("$3n is not wanted.",
  A_HIDEINV, deputy, null, targ, TO_CHAR);
     goto loop;
  }


  if (deputy.type == UNIT_ST_PC)
    skilla := deputy.skills[SKI_CUFF];
  else
    skilla := deputy.abilities[ABIL_DEX];

  if (targ.type == UNIT_ST_PC)
    skilld := targ.skills[SKI_CUFF];
  else
    skilld := targ.abilities[ABIL_DEX];

  secure(targ, loop);

  hm := skillresist@function(deputy.abilities[ABIL_DEX],
      targ.abilities[ABIL_DEX],
      skilla, skilld);
  if (hm < 0)
  {
     act("Your attempt at cuffing $3n fails miserably.",
  A_SOMEONE, deputy, null, targ, TO_CHAR);
     act("$1n attempts to cuff you but fails miserably.",
  A_SOMEONE, deputy, null, targ, TO_VICT);
     act("$1n attempts to cuff $3n but fails miserably.",
  A_SOMEONE, deputy, self, targ, TO_NOTVICT);
     link(self, targ);
     goto loop;
  }

  act("You cuff $3n.", A_SOMEONE, deputy, null, targ, TO_CHAR);
  act("$1n surprises you and put $2n around your wrists.",
      A_SOMEONE, deputy, self, targ, TO_VICT);
  act("$1n puts $2n around $3N's wrists.",
      A_SOMEONE, deputy, self, targ, TO_NOTVICT);

  follow(targ, deputy);
  depname := deputy.name;
  unsecure(deputy);
  link(self, targ);
  unequip(equipment(self.outside, WEAR_WRIST_R));
  addequip(self, WEAR_WRIST_R);
  dilcopy("cuffed@midgaard("+depname+")", self.outside);
  dilcopy("cuffed2@midgaard("+depname+")", self.outside);

  exec("sigh", self.outside); /* Do this to activate the DILs */

  /* targ is secured, when broken we reset to loop */
  :cuffed:
  wait(SFB_CMD, self.equip != WEAR_WRIST_R);
  goto cuffed;
}
dilend

end


/* ------------------------ MAGIC SHOP ITEMS ------------------------- */

                             nightshade
names {"nightshade", "berries"}
title "some nightshade berries"
descr "A handful of nightshade berries have been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(2, 5)
weight 1
cost 2 COPPER_PIECE

dilcopy herb@midgaard("ns_berries@midgaard");

end

                            rose_bouquet
names {"roses", "bouquet"}
title "a bouquet of roses"
descr "A bouquet of red roses has been left here."
extra {} "They are very beautiful."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
type ITEM_OTHER
weight 1
cost 2 IRON_PIECE
end

  p_cdisease
names {"potion of cure disease", "potion"}
title "a potion of cure disease"
descr "A potion has carelessly been left here."
manipulate {MANIPULATE_TAKE}
POTION_DEF(50, SPL_REM_DISEASE, SPL_NONE, SPL_NONE)
weight 1
cost 5 GOLD_PIECE
extra {}
"It has a nice white colour and smells little like peppermint."
end

  p_rpoison

names {"potion of remove poison","potion"}
title "a potion of remove poison"
descr "A potion has carelessly been left here."
manipulate {MANIPULATE_TAKE}
POTION_DEF(50, SPL_REMOVE_POISON, SPL_NONE, SPL_NONE)
weight 1
cost 5 GOLD_PIECE
extra {}
"It has a deep yellow colour and smells a little like mayflowers."
end

  p_dalignment

names {"potion of detect alignment", "potion"}
title "a potion of detect alignment"
descr "A potion has carelessly been left here."
manipulate {MANIPULATE_TAKE}
POTION_DEF(50, SPL_DET_ALIGN, SPL_NONE, SPL_NONE)
weight 1
cost 1 GOLD_PIECE
extra {}
"It has swirling red, blue and green colors."
end

  p_dinvisible

names {"potion of detect invisible", "potion"}
title "a potion of detect invisible"
descr "A potion has carelessly been left here."
manipulate {MANIPULATE_TAKE}
POTION_DEF(50, SPL_DET_INVISIBLE, SPL_NONE, SPL_NONE)
weight 1
cost 5 GOLD_PIECE
extra {}
"It is a clear liquid."
end

                          scroll_clight

names {"scroll of continual light", "scroll"}
title "a scroll of continual light"
descr "A scroll has carelessly been left here."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost 20 GOLD_PIECE
SCROLL_DEF(50, SPL_LIGHT_2, SPL_NONE, SPL_NONE)
extra {}
"The scroll has a magic formula drawn upon it:&l

                    \|/
                    -:-
                    /|\ "
end

/* -------------------------- DRINK CONTAINERS -------------------------- */

                               beer_barrel

names {"barrel", "beer"}
title "a barrel"
descr "A barrel has been left here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("brown", 15,50,50,5,2,3,0)
cost 40 IRON_PIECE
end

                               beer_bottle

names {"green bottle","bottle","beer"}
title "a bottle"
descr "A green bottle has been left here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("brown", 2,8,8,5,2,3,0)
cost 4 IRON_PIECE
end

                               ale_bottle

names {"dark bottle","bottle","ale"}
title "a bottle"
descr "A dark bottle has been left here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("brown", 2,8,8,5,2,5,0)
cost 3 IRON_PIECE
end

                              firebreather

names {"red bottle", "bottle", "firebreather"}
title "a red bottle"
descr "A red bottle has been left here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("green", 2, 8, 8, 0, 0, 10, 0)
cost 1 COPPER_PIECE
end

                              speciality

names {"brown bottle","bottle","local speciality"}
title "a bottle"
descr "A brown bottle has been left here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("clear", 2, 8, 8, 3, 3, 3,0)
cost 2 COPPER_PIECE
end

                               tea_cup

names {"tea cup","tea","cup"}
title "a tea cup"
descr "A tea cup has been set here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("brown", 1, 2, 2, 6, 1, 0,0)
cost 1   IRON_PIECE
extra {} "It is a small, simple cup."
end

                              coffe_cup

names {"coffee cup","cup","coffee"}
title "a coffee cup"
descr "A coffee cup has been set here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("black", 1, 2, 2, 6, 1, 0,0)
cost 2   IRON_PIECE
extra {} "It is a small, simple cup."
end

                              water_cup

names {"water cup","cup","water"}
title "a cup of water"
descr "A cup has been set here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("clear", 1,2,2,10,1,0,0)
cost 1   IRON_PIECE
extra {} "It is a large, simple cup."
end



                            brandy_bottle

names {"brandy bottle","bottle", "brandy"}
title "a brandy bottle"
descr "A brandy bottle is lying here."
manipulate {MANIPULATE_TAKE}
LIQ_DEF("golden", 2,15,15,4,1,6,0)
cost 3   COPPER_PIECE
extra {}
"The bottle is a special `Dragon Blood' brandy bottle.  Its neck is shaped
like a small dragon's head.  Bottles like these are often worth a small
amount of money, even when empty."
end

/* -------------------------- FOOD -------------------------- */

                             bread

names {"bread"}
title "a bread"
descr "A loaf of bread has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(12, 0)
weight 2
cost 1   IRON_PIECE
end

                             pastry

names {"danish pastry", "danish", "pastry"}
title "a danish pastry"
descr "A delicious-looking danish pastry has been placed here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(5, 0)
weight 1
cost 3   IRON_PIECE
end


                            salted_beef

names {"salted beef", "beef"}
title "a piece of salted beef"
descr "A piece of salted beef has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(12, 0)
weight 1
cost 4   IRON_PIECE
end


                          turkey_dstick

names {"turkey drumstick", "drumstick", "turkey"}
title "a turkey drumstick"
descr "A turkey drumstick has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(24, 0)
weight 3
cost 4   IRON_PIECE
end


                            pork_saddle

names {"pork saddle", "saddle", "pork"}
title "a smoked saddle of pork"
descr "A smoked saddle of pork has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(36, 0)
weight 6
cost 5   IRON_PIECE
end


                            kipper

names {"kipper"}
title "a kipper"
descr "A kipper has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(6, 0)
weight 1
cost 3   IRON_PIECE
end


                             split_cod

names {"split cod", "cod"}
title "a split cod"
descr "A split cod has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(12, 0)
weight 1
cost 2   IRON_PIECE
end

                            salmon

names {"salmon"}
title "a smoked salmon"
descr "A smoked salmon has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(36, 0)
weight 6
cost 4   IRON_PIECE
end

                               apple

names {"apple"}
title "an apple"
descr "An apple has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(5, 0)
weight 1
cost 1   IRON_PIECE
end

                               garlic

names {"garlic"}
title "a garlic"
descr "A large garlic has been left here."
extra {} "In memorium Bod."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(4, 0)
weight 1
cost 1   IRON_PIECE
end

                            water_melon

names {"water melon", "melon"}
title "a water melon"
descr "A water melon has been left here."
manipulate {MANIPULATE_TAKE}
FOOD_DEF(15, 0)
weight 6
cost 6   IRON_PIECE
end

/* ----------------------- STANDARD WEAPONS ----------------------- */

   staff

names {"quarterstaff","staff"}
title "a quarterstaff"
descr
"A quarterstaff has been left here."
extra {}
"This is a nice wooden quarterstaff, reinforced at each end with a
little metal bar."
manipulate {MANIPULATE_TAKE,MANIPULATE_HOLD,MANIPULATE_WIELD}
WEAPON_DEF(WPN_QUARTERSTAFF, 0, 0)
weight 2
cost 5   COPPER_PIECE
end

                            wdclb0

names {"wooden stick","stick"}
title "a wooden stick"
descr "A simple-looking wooden stick is here."
/* Wood + Craftman ship = (30% + 5%) */
WEAPON_DEF(WPN_CLUB, -10, 0)
weight 3
cost 1   COPPER_PIECE
end

                           wdclb2

names {"great wooden club","wooden club", "club"}
title "a great wooden club"
descr "A very large, simple-looking wooden club is here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
WEAPON_DEF(WPN_BATTLE_CLUB, -10, 0)
weight 7
cost 2   COPPER_PIECE
end

                            dag0

names {"dagger"}
title "a dagger"
descr "A small dagger with a long thin blade is here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman-ship = -5% */
WEAPON_DEF(WPN_DAGGER, -5, 0)
weight 6
cost  4   SILVER_PIECE
end

                            sword0

names {"short sword","sword"}
title "a short sword"
descr "A short sword lies here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman ship = -5% */
WEAPON_DEF(WPN_SHORT_SWORD, -5, 0)
weight 10
cost 8   SILVER_PIECE
end

                          lsword0

names {"long sword","sword"}
title "a long sword"
descr "A long sword has been left here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman ship = -5% */
WEAPON_DEF(WPN_LONG_SWORD, -5, 0)
weight 10
cost 12   SILVER_PIECE
end

                          sword2

names {"two handed sword","sword"}
title "a two handed sword"
descr "A two handed sword has been left here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman ship = -5% */
WEAPON_DEF(WPN_GREAT_SWORD, -5, 0)
weight 10
cost 16   SILVER_PIECE
end


                          katana

names {"katana"}
title "a katana"
descr "A katana has been left here."
extra {}
"The katana is a light weight finely crafted weapon."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
WEAPON_DEF(WPN_KATANA, 0, 0)
weight 7
cost 25   SILVER_PIECE
end


                             ham0

names {"war hammer","hammer"}
title "a war hammer"
descr "A medium-sized warhammer is here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman ship -5% */
WEAPON_DEF(WPN_WAR_HAMMER, -5, 0)
weight 10
cost 8   SILVER_PIECE
end

                                 smithtool
names {"small hammer","hammer"}
title "a small hammer"
descr "A small-sized hammer is here."
extra {}
"This is a small well used hammer.  It looks as if it has been used to beat
hot metal."

extra {"$improved identify"}
"This hammer is the perfect tool for working on metal"
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}

type ITEM_OTHER
weight 1
cost 5   SILVER_PIECE
extra {"$refit metal"}
"This tool is for metal."
end


                             mace

names {"mace"}
title "a mace"
descr "A mace has been left here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman ship -5% */
WEAPON_DEF(WPN_MACE, -5, 0)
weight 10
cost 8   SILVER_PIECE
end


                             spear0

names {"spear"}
title "a spear"
descr "A medium-sized spear has been dropped on the ground."
extra {} "The spear has a wooden shaft, and is reinforced at the head."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman ship -5% */
WEAPON_DEF(WPN_SPEAR, -5, 0)
weight 7
cost 2   SILVER_PIECE
end


                              flail1

names {"flail"}
title "a flail"
descr "A flail has been dropped here."
extra {}
"The flail is made of metal, and the head is fastened with a very solid
metal chain."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron / Craftman ship = -5% */
WEAPON_DEF(WPN_FLAIL, -5, 0)
weight 5
cost 15   SILVER_PIECE
end


                              axe1

names {"battle axe", "axe"}
title "a battle axe"
descr "A battle axe has been dropped here."
extra {} "The axe is made of metal with a wooden grip."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron + Craftman ship = (90% + -5%) */
WEAPON_DEF(WPN_BATTLE_AXE, -5, 0)
weight 10
cost 10   SILVER_PIECE
end

/* -------------------------- LIGHT SOURCES -------------------------- */


                                torch

names {"torch"}
title "a torch"
descr "A large torch is here."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
LIGHT_DEF(12, 2)
weight 1
cost 1   IRON_PIECE
end

                               lantern

names {"brass lantern", "lantern"}
title "a lantern"
descr "A brass lantern is here."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
LIGHT_DEF(96, 4)
weight 1
cost 3   SILVER_PIECE
end


                              candlestick

names {"candlestick"}
title "a candlestick"
descr "A pewter candlestick is standing here."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
LIGHT_DEF(8, 2)
weight 5
cost 4   IRON_PIECE
extra {}
"It is a rather old-looking three-armed candlestick made from pewter.  Its
candles are a yellowish white colour."
end


/* -------------------------- CONTAINERS -------------------------- */

                                 bag

names {"bag"}
title "a bag"
descr "A bag has been left here."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD, MANIPULATE_ENTER}
CONTAINER_DEF(75)
weight 2
cost 5   IRON_PIECE
end

                                 box

names {"box"}
title "a box"
descr "A small box is here."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD, MANIPULATE_ENTER}
open {EX_OPEN_CLOSE, EX_INSIDE_OPEN}
CONTAINER_DEF(10)
weight 5
cost 3   COPPER_PIECE
end


                               coffin

names {"black coffin", "coffin"}
title "a black coffin"
descr "A black coffin has been set here."
inside_descr
"You are inside a black coffin with a red welvet padding - scary!"
extra {}
"It is made from hard, black wood and looks large enough to fit the average
human."
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD, MANIPULATE_ENTER}
flags {UNIT_FL_TRANS}
open {EX_OPEN_CLOSE, EX_INSIDE_OPEN}
type ITEM_BOAT
capacity 350   /* Space for large human */
weight 30
cost 11   COPPER_PIECE

extra {"$enter_s"}
"You crawl into the $2N. It feels nice and cosy inside."
extra {"$enter_o"}
"$1n crawls into the $2N."

extra {"$exit_s"}
"You crawl out of the $2N."
extra {"$exit_o"}
"$1n crawls out of the $2N."

extra {"$get_s"}
"You get the $2N and fling it over your back."
extra {"$get_o"}
"$1n gets the $2N and flings it over $1s back."
extra {"$drop_s"}
"You drop the rather large $2N."
extra {"$drop_o"}
"$1n drops the rather large $2N."

end

/* -------------------------- LEATHER ARMOURS -------------------------- */

                                 lth_cap

names {"leather cap","cap"}
title "a leather cap"
descr "A leather cap is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
ARMOUR_LEATHER(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 2
cost 6   COPPER_PIECE
end


                                 lth_cap1

names {"leather cap","cap"}
title "a leather cap"
descr "A leather cap is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
ARMOUR_PLATE(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 25
cost 6   COPPER_PIECE
dilcopy abil_restrict@function(ABIL_STR, 70, 0, 0, "");

end



                                lth_gloves

names {"leather gloves","gloves"}
title "a pair of leather gloves"
descr "A pair of leather gloves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HANDS}
ARMOUR_LEATHER(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 2
cost 6   COPPER_PIECE
end


                                lth_gloves1

names {"leather gloves","gloves"}
title "a pair of leather gloves"
descr "A pair of leather gloves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HANDS}
ARMOUR_PLATE(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 25
dilcopy abi_restrict@function(ABIL_STR, 70, 0, 0, "");
cost 6   COPPER_PIECE
end


                               lth_sleeves

names {"leather sleeves","sleeves"}
title "a pair of leather sleeves"
descr "A pair of leather sleeves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ARMS}
ARMOUR_LEATHER(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 2
cost 8   COPPER_PIECE
end

                               lth_sleeves1

names {"leather sleeves","sleeves"}
title "a pair of leather sleeves"
descr "A pair of leather sleeves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ARMS}
ARMOUR_PLATE(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 25
dilcopy abi_restrict@function(ABIL_STR, 70, 0, 0, "");
cost 8   COPPER_PIECE
end



                               lth_jerkin

names {"leather jerkin","jerkin"}
title "a leather jerkin"
descr "A leather jerkin is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_BODY}
ARMOUR_LEATHER(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 2
cost 6   COPPER_PIECE
end


                               lth_jerkin1

names {"leather jerkin","jerkin"}
title "a leather jerkin"
descr "A leather jerkin is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_BODY}
ARMOUR_PLATE(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 25
cost 6   COPPER_PIECE
dilcopy abi_restrict@function(ABIL_STR, 70, 0, 0, "");
end



                               lth_pants

names {"leather pants", "pants"}
title "a pair of leather pants"
descr "A pair of leather pants is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_LEGS}
ARMOUR_LEATHER(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 5
cost 8   COPPER_PIECE
extra "$wear_s"
"You slip into the $2N and feel rather smart."
extra "$wear_o"
"$1n slips into the $2N."

extra "$rem_s"
"You get out of the $2N and feel a little naked."
extra "$rem_o"
"$1n gets out of $1s $2N."
end


               lth_pants1

names {"leather pants", "pants"}
title "a pair of leather pants"
descr "A pair of leather pants is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_LEGS}
ARMOUR_PLATE(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 25
cost 8   COPPER_PIECE
extra "$wear_s"
"You slip into the $2N and feel rather smart."
extra "$wear_o"
"$1n slips into the $2N."

extra "$rem_s"
"You get out of the $2N and feel a little naked."
extra "$rem_o"
"$1n gets out of $1s $2N."

dilcopy abi_restrict@function(ABIL_STR, 70, 0, 0, "");

end



                               lth_boots

names {"leather boots", "boots"}
title "a pair of leather boots"
descr "A pair of leather boots lies here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FEET}
ARMOUR_LEATHER(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 3
cost 6   COPPER_PIECE
end




                               lth_boots1

names {"leather boots", "boots"}
title "a pair of leather boots"
descr "A pair of leather boots lies here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FEET}
ARMOUR_PLATE(0, 0) /* 10 default str, Leather Quality, Average Craft */
weight 23
cost 6   COPPER_PIECE
dilcopy abi_restrict@function(ABIL_STR, 70, 0, 0, "");
end

/* -------------------------- STUDDED ARMOURS -------------------------- */

                                hlth_cap

names {"hard leather cap","cap"}
title "a hard leather cap"
descr "A hard leather cap is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
ARMOUR_HRD_LEATHER(0, 0) /* 15 def str, HLth Quality, Average Craft */
weight 2
cost 12   COPPER_PIECE
end

                               hlth_gloves

names {"hard leather gloves","gloves"}
title "a pair of hard leather gloves"
descr "A pair of hard leather gloves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HANDS}
ARMOUR_HRD_LEATHER(0, 0) /* 15 def str, HLth Quality, Average Craft */
weight 1
cost 12   COPPER_PIECE
end

                               slth_sleeves

names {"studded leather sleeves","sleeves"}
title "a pair of studded leather sleeves"
descr "A pair of studded leather sleeves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ARMS}
ARMOUR_LEATHER(0, 0) /* 15 def str, Lth Quality, Average Craft */
weight 4
cost 8   COPPER_PIECE
end
                               slth_jerkin

names {"studded leather jerkin","jerkin"}
title "a studded leather jerkin"
descr "A studded leather jerkin is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_BODY}
ARMOUR_LEATHER(0, 0) /* 15 def str, Lth Quality, Average Craft */
weight 5
cost 12   COPPER_PIECE
end

                               slth_pants

names {"studded leather pants","pants"}
title "a pair of studded leather pants"
descr "A pair of studded leather pants is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_LEGS}
ARMOUR_LEATHER(0, 0) /* 15 def str, Lth Quality, Average Craft */
weight 8
cost 16   COPPER_PIECE
end

                               hlth_boots

names {"hard leather boots","boots"}
title "a pair of hard leather boots"
descr "A pair of hard leather boots lies here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FEET}
ARMOUR_HRD_LEATHER(0, 0) /* 10 def str, HLth Quality, Average Craft */
weight 4
cost 12   COPPER_PIECE
end


/* -------------------------- SCALE ARMOURS -------------------------- */

                              scale_coif

names {"scale mail coif","coif"}
title "a scale mail coif"
descr "A scale mail coif is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
/* Iron/Leather mixture + avg/poor craftmanship */
ARMOUR_CHAIN(-2, 0)
cost 7   SILVER_PIECE
end

                             scale_gloves

names {"reinforced gloves","gloves"}
title "a pair of reinforced gloves"
descr "A pair of reinforced gloves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HANDS}
ARMOUR_CHAIN(-2, 0)
weight 4
cost 7   SILVER_PIECE
end

                             scale_sleeves

names {"scale mail sleeves","sleeves"}
title "a pair of scale mail sleeves"
descr "A pair of scale mail sleeves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ARMS}
ARMOUR_CHAIN(-2, 0)
weight 8
cost 9   SILVER_PIECE
end

                             scale_jerkin

names {"scale mail jerkin","jerkin"}
title "a scale mail jerkin"
descr "A scale mail jerkin is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_BODY}
ARMOUR_CHAIN(-2, 0)
weight 9
cost 7   SILVER_PIECE
end

                             scale_skirt

names {"scale mail skirt","skirt"}
title "a long scale mail skirt"
descr "A long scale mail skirt is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_LEGS}
ARMOUR_CHAIN(-2, 0)
weight 9
cost 9   SILVER_PIECE
end

                             scale_boots

names {"scale mail boots","boots"}
title "a pair of scale mail boots"
descr "A pair of scale mail boots lies here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FEET}
ARMOUR_CHAIN(-2, 0)
weight 6
cost 7   SILVER_PIECE
end

/* -------------------------- CHAIN ARMOURS -------------------------- */

                             chain_coif

names {"chain mail coif", "coif"}
title "a chain mail coif"
descr "A chain mail coif is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
/* Iron rings + avg/poor = 100% +  -5% */
ARMOUR_CHAIN(-5, 0)
weight 4
cost 15   SILVER_PIECE
end

                             chain_sleeves

names {"chain mail sleeves","sleeves"}
title "a pair of chain mail sleeves"
descr "A pair of chain mail sleeves is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ARMS}
ARMOUR_CHAIN(-5, 0)
weight 8
cost 20   SILVER_PIECE
end

                             chain_jerkin

names {"chain mail jerkin", "jerkin"}
title "a chain mail jerkin"
descr "A chain mail jerkin is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_BODY}
ARMOUR_CHAIN(-5, 0)
weight 9
cost 15   SILVER_PIECE
end


                             chain_skirt

names {"chain mail skirt", "skirt"}
title "a long chain mail skirt"
descr "A long chain mail skirt is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_LEGS}
ARMOUR_CHAIN(-5, 0)
weight 9
cost 20   SILVER_PIECE
end

/* -------------------------- BRONZE ARMOURS -------------------------- */

                             bronze_helmet

names {"bronze helmet","helmet"}
title "a bronze helmet"
descr "A bronze helmet is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
/*  Bronze + poor craftmanship */
ARMOUR_PLATE(-5, 0)
weight 8
cost 12   COPPER_PIECE
end

                             bronze_gloves

names {"bronze gauntlets","gauntlets"}
title "a pair of bronze gauntlets"
descr "A pair of bronze gauntlets is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HANDS}
ARMOUR_PLATE(-5, 0)
weight 8
cost 12   COPPER_PIECE
end

                             bronze_bracers

names {"bronze bracers","bracers"}
title "a pair of bronze bracers"
descr "A pair of bronze bracers is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ARMS}
ARMOUR_PLATE(-5, 0)
weight 8
cost 22   SILVER_PIECE
end

                              bronze_plate

names {"bronze breast plate", "breast plate"}
title "a bronze breast plate"
descr "A bronze breast plate is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_BODY}
ARMOUR_PLATE(-5, 0)
weight 20
cost 17   SILVER_PIECE
end


                              bronze_leggings

names {"bronze leggings","leggings"}
title "a pair of bronze leggings"
descr "A pair of bronze leggings is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_LEGS}
ARMOUR_PLATE(-5, 0)
weight 8
cost 22   SILVER_PIECE
end

                              bronze_boots

names {"bronze boots","boots"}
title "a pair of bronze boots"
descr "A pair of bronze boots is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FEET}
ARMOUR_PLATE(-5, 0)
weight 10
cost 8   SILVER_PIECE
end


/* -------------------------- IRON ARMOURS -------------------------- */

                              iron_helmet

names {"iron helmet","helmet"}
title "an iron helmet"
descr "An iron helmet is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
/* Iron plates + poor craftmanship = 100% + -10% = 90% */
ARMOUR_PLATE(0, 0)
weight 8
cost 15   COPPER_PIECE
end

                              iron_gloves

names {"iron gauntlets","gauntlets"}
title "a pair of iron gauntlets"
descr "A pair of iron gauntlets is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HANDS}
ARMOUR_PLATE(0, 0)
weight 8
cost 15   SILVER_PIECE
end

                             iron_bracers

names {"iron bracers","bracers"}
title "a pair of iron bracers"
descr "A pair of iron bracers is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ARMS}
ARMOUR_PLATE(0, 0)
weight 8
cost 25   SILVER_PIECE
end

                              iron_plate

names {"iron breast plate", "breast plate"}
title "an iron breast plate"
descr "An iron breast plate is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_BODY}
ARMOUR_PLATE(0, 0)
weight 20
cost 20   SILVER_PIECE
end


                             iron_leggings

names {"iron leggings","leggings"}
title "a pair of iron leggings"
descr "A pair of iron leggings is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_LEGS}
ARMOUR_PLATE(0, 0)
weight 8
cost 25   SILVER_PIECE
end

                              iron_boots

names {"iron boots","boots"}
title "a pair of iron boots"
descr "A pair of iron boots is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FEET}
ARMOUR_PLATE(0, 0)
weight 10
cost 10   SILVER_PIECE
end


/* -------------------------- SHIELDS -------------------------- */

                           swood_shield

names {"small wooden shield", "wooden shield", "shield"}
title "a small wooden shield"
descr "A small wooden shield is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_SHIELD}
SHIELD_DEF(SHIELD_SMALL, -10, 0)
weight 8
cost 1   SILVER_PIECE
end

                          smetal_shield

names {"small metal shield", "metal shield", "shield"}
title "a small metal shield"
descr "A small metal shield is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_SHIELD}
SHIELD_DEF(SHIELD_SMALL, -5, 0)
weight 5
cost 2   SILVER_PIECE
end

                          lmetal_shiel

names {"large metal shield", "metal shield", "shield"}
title "a large metal shield"
descr "A large metal shield is lying on the ground."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_SHIELD}
SHIELD_DEF(SHIELD_LARGE, -5, 0)
weight 10
cost 8   SILVER_PIECE
end


/* -------------------------- KEYS -------------------------- */

                           city_key

/* The City Key */
names {"golden key", "key"}
title "the golden key"
descr "A very big golden key is here."
type ITEM_KEY
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost 10   SILVER_PIECE
extra {}
"It is probably the biggest key you have ever seen.  It is made from
polished gold and has various patterns on it along with the Midgaard Coat of
Arms."
end

                           desk_key

/* This is for the guard desk */
names {"wooden key","key"}
title "a key"
descr "A wooden key has been left here."
type ITEM_KEY
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost 1   COPPER_PIECE
extra {}
"You see nothing special about the wooden key, except that it has been made
from oak."
end

                           safe_key

/* This is for the safe in the guards office */
names {"brass key","key"}
title "a key"
descr "A brass key has been left here."
type ITEM_KEY
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost 5   COPPER_PIECE
extra {}
"The brass key is small and looks like it fits a very complicated lock."
end


                          jail_key

/* Key to open the Jail */
names {"steel key","key"}
title "a steel key"
descr "A large steel key has been left here."
type ITEM_KEY
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 2
extra {}
"A key of this size must fit a very strong lock."
end


                          grub_key

/* Key to open from Grubby Inn to Smug, and to Wine Cellar */
names {"iron key","key"}
title "an iron key"
descr "An iron key has carelessly been dropped here."
type ITEM_KEY
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
extra {}
"You notice the initials `G.I.' on the key."
end

                          altar_key

/* Key to open from Altar to northern staircase */
names {"bronze key","key"}
title "a bronze key"
descr "A bronze key has been dropped here."
type ITEM_KEY
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
extra {}
"You notice the inscription `Crypt' on the key."
end


/* -------------------------- GUARD STUFF -------------------------- */

                                desk

names {"desk"}
title "the desk"
descr "A desk is set against the western wall."
CONTAINER_DEF(20)
weight 100
extra {} "The desk looks very sparse, there is a drawer in the left side."
extra {"desk drawer", "drawer"} "You notice a keyhole in the drawer."
open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED, EX_PICKPROOF}
key desk_key
end

                                safe

names {"safe"}
title "the safe"
descr "A safe is placed in a dark corner of the room."
extra {} "You notice that the safe has a keyhole, it looks very heavy."
manipulate {MANIPULATE_ENTER}
open {EX_OPEN_CLOSE, EX_CLOSED, EX_LOCKED, EX_PICKPROOF}
key safe_key
CONTAINER_DEF(400)
end

                             safe_coins
/* Rest is inserted at runtime */
MONEY(IRON_PIECE, 82)
extra {} "Looks like a lot of money."
end


/* -------------------------- VALUEABLES -------------------------- */

                              amethyst

names {"amethyst","gem"}
title "a amethyst"
descr "A small beautifully polished amethyst has been left here."
type ITEM_TREASURE
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost  3   SILVER_PIECE
extra {}
"It has a very deep purple colour."
end

                             pendant

names {"pendant","silver"}
title "a silver pendant"
descr "A silver pendant has been left here."
type ITEM_TREASURE
romflags {OBJ_NOCOVER}
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_NECK, MANIPULATE_HOLD}
weight 5
cost 8   SILVER_PIECE
extra {}
"It resembles the Hammer of Thor and appears to be made of solid silver."
end

                           silverring

names {"silver ring", "ring"}
title "a silver ring"
descr "A silver ring has been left here."
type ITEM_TREASURE
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FINGER, MANIPULATE_HOLD}
weight 1
cost 1   SILVER_PIECE
extra {}
"It appears to be made of solid silver, and is beautifully polished.  It
almost
looks magical enough to use as a light."
bright 5

end


                           goldring

names {"gold ring", "ring"}
title "a gold ring"
descr "A gold ring has been left here."
type ITEM_TREASURE
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FINGER, MANIPULATE_HOLD}
weight 1
cost 12   SILVER_PIECE
extra {}
"It appears to be made of solid gold, and is beautifully polished."
end

                          silver_dag

names {"dagger","silver"}
title "a silver dagger"
descr "A long silver dagger is lying here."
type ITEM_WEAPON
flags {UNIT_FL_MAGIC}
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Silver / Good Craftmanship / A little magic~= -5% */
WEAPON_DEF(WPN_DAGGER, -5, +1)
weight 1
rent 20 COPPER_PIECE
cost 50   SILVER_PIECE
extra {}
"It has a long, sharp blade that is made entirely from silver.  A small rune
has been engraved on the blade next to the hilt."
extra {"$identify"}
"This dagger has a magically enchanted blade."
extra {"$improved identify"}
"This dagger has a magical +1 bonus to relieve all ill side effects
of the expensive silver material used."
end

needle
names {"large sewing needle","sewing needle","needle"}
title "a large sewing needle"
descr "A large sewing needle is lying here."
type ITEM_OTHER
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
weight 1
cost 3   SILVER_PIECE
extra {}
"This is just a large sewing needle."
extra {"$improved identify"}
"This needle would be perfect for working on clothing."
extra {"$refit clothes"}
"This tool is for clothes"

end

leather_tool
names {"old leather tool","leather tool","tool"}
title "an old leather tool"
descr "An old leather tool is lying here."
type ITEM_OTHER
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
weight 1
cost 6   SILVER_PIECE
extra {}
"This is just a old leather tool."
extra {"$improved identify"}
"This leather tool would be perfect for adjusting the size of leather armor."
extra {"$refit leather"}
"This tool is for leather."

end

/* -------------------------- VARIOUS -------------------------- */

                            blood_book


names {"book of blood", "book"}
title "the book of blood"
descr "The book of blood is here, mounted to a pedestal."
extra {}
"&lThe book looks old and dusty, upon closer inspection, you notice a
variety of different signatures, all once names of respected citizens.
(Use 'sign book' to sign it.)"
extra {"pedestal"}
"The book is securly fastened and doesn't seem to budge."
extra {"signatures", "signature", "blood", "pages", "page"}
"The recognize many of the names written on the book's pages.
In fact, many ring out in your memory, these are the names of
outlaws!&n
_____________________________________________________________&n"

type ITEM_BOOK
weight 500
cost 6   GOLD_PIECE

dilbegin bob();
var
pc : unitptr;
i : integer;
code
{
  heartbeat := PULSE_SEC * 3;
  :start:
  wait(SFB_CMD, (command("write") or command("sign")));
  block;

  if (activator.type != UNIT_ST_PC)
    goto start;

  if (activator.level < 50)
  {
     act("The Book of Blood quakes violently in its resting " +
  "spot, a voice intones 'Thou must be of an experience " +
  "level of 50 or higher to register in the death book'." ,
  A_ALWAYS, activator, null, null, TO_CHAR);
     act("The Book of Blood refuses to let "+activator.name+" sign.",
 A_ALWAYS, activator, null, null, TO_REST);
     goto start;
  }

  if (not ("book" in argument))
  {
     act("If you want to sign $2n, then type 'sign book'.",
  A_ALWAYS, activator, self, null, TO_CHAR);
     goto start;
  }

  if (isset(activator.pcflags, PC_PK_RELAXED))
  {
     act("You are already signed up in $2n, the treacherous " +
  "ways of death are already familiar to you!",
         A_ALWAYS, activator, self, null, TO_CHAR);
  }
  else
  {
     pc := activator;
     secure(pc, start);

     act("The Book of Blood seems to shudder into life!",
  A_ALWAYS, pc, self, null, TO_CHAR);
     pause;
     act("A morbid voice intones 'Thou truly wishes to sign the " +
  "death book? Let the warnings of the dead ring out in your " +
         "mind!", A_ALWAYS, pc, self, null, TO_CHAR);
 pause;
     act("The voices of the dead whisper 'If you really choose to sign, " +
  "be it known that your death may be sought by ANYONE else " +
  "who has signed. You will be free to murder other signers " +
  "as you wish.", A_ALWAYS, pc, self, null, TO_CHAR);
     pause;
     act ("Understand though if you sign there is no turning back.  "+
     "Once a book signer always a book signer.  Also don't complain to "+
     "The gods about another book signer that kills you cause thats what
signing "+
     "this book means.  You are giving your permission to be killed.",
       A_ALWAYS, pc, self, null, TO_CHAR);
       pause;

     act("The voices of the dead whisper 'If you still wish to sign, " +
  "do so now, repeat the procedure to complete your entrance " +
       "into the league of death!'",
       A_ALWAYS, pc, self, null, TO_CHAR);
     i := 0;
     while (i < 2)
     {
        wait(SFB_CMD, activator == pc);
        if ((command("write") or command("sign")) and ("book" in argument))
        {
         block;
           goto book_signed;
        }
        else
        {
   block;
    act("You have to 'write book' to complete the procedure " +
        "and live out your days as a fugitive from " +
        "death!", A_ALWAYS, activator, self, null, TO_CHAR);
  }
        i := i+1;
     }
     act("An eerie voice exclaims 'A wise decision not to sign!",
  A_ALWAYS, activator, self, null, TO_CHAR);
     unsecure(pc);
     goto start;
     :book_signed:
     set(activator.pcflags, PC_PK_RELAXED);
     act("You sign $2n, your wrist flares with pain and you " +
  "notice you have a new scar, an insignia of your allegiance " +
  "with death!",
         A_ALWAYS, activator, self, null, TO_CHAR);
     act("$1n signs $2n, a scar wells up to signify the allegiance " +
  "with death.",
         A_ALWAYS, activator, self, null, TO_ROOM);
     unsecure(pc);
  }

  goto start;
}
dilend

dilbegin look_signature();
var
 pc:unitptr;
 code
 {
 heartbeat:=PULSE_SEC*3;
 :start:
 wait (SFB_CMD,(
 (command ("look")) and
 (("signature"==argument ) or ("signatures" == argument))
 ));
 block;
 pc:=ghead();
sendtext ("The following book signers are on line.&n&n",activator);

    while (pc.type==UNIT_ST_PC)
     {
     if (((isset (pc.pcflags,PC_PK_RELAXED)) or
  (dilfind ("no_kill@function",pc))) and
     (pc.level<200) and
     (visible (activator,pc)))
    sendtext(pc.name+" "+pc.title+"&n",activator);
     pc:=pc.gnext;
     }

goto start;
}
dilend

end
                              paper

names {"paper"}
title "a piece of paper"
descr "A piece of paper has been left here."
type ITEM_NOTE
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost 6 IRON_PIECE
end
                              map

names {"map of midgaard", "map"}
title "a map of Midgaard"
descr "A map of Midgaard has been left here."
type ITEM_NOTE
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost 18   IRON_PIECE
extra {}
"&l             North Midgaard

                   1 1 1 1 1 1 1 1 1 1 1 1 1
 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2

A                     @
                     |
B     R             R-#-R             R
     |               |               |
C     W-------W-------W-------W-------D        Cathedral            F11
     |       |       |       |       |
D     |       |       #       |       |        Shops
     |       |       |       |       |          Magic Shop         E16
E     |       #     #-#-#     #-S     |          Tailor Shop        G16
     |       |     |   |     |       |          Pet Shop           H05
F     W       |   G-# C #-G   |       W          Leather Shop       H17
     |       |     | | |     |       |          Ironmonger's Shop  J05
G     |     I-#-----#-#-#-----#-S     |          Baker's Shop       J07
     |       |       |       |       |          Greengrocer's Shop J09
H   R |   S   |   O   |   O   |   S   | R        Butcher's Shop     J17
   | |   |   |   |   |   |   |   |   | |        Boat Shop          L06
I @-#-W---#---#---#---#---#---#---#---W-#-@      Fish Shop          L08
   | |   |   |   |   |   |   |   |   | |        Armour's Shop      Q09
J   R |   S   S   S   |   T   |   S   | R        Mortican's Shop    S05
     |               |       |       |          Blacksmith's Shop  S09
K     |               #-I   O-#       |          Carpenter's Shop   T05
     |               |       |       |          Weaponsmith's Shop T08
L     |     S   S     |       |       |          Jeweller's Shop    T14
     |     |   |     |       |       |
M     W-----#-#-#-----#---#---#---#---W        Inns
     |       |       |               |          Grunting Boar      K12
N     W       #       #               W          Filthy's           G06
     |               |               |          Park Cafe          S14

  South Midgaard.                             Guilds
                   1 1 1 1 1 1 1 1 1 1 1 1      Paladins           F09
 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1      Sorcerors          Y03

     |               |               |        Connections
O     W---#---#---#---#---#---#---#---W          Cypress Forest     I01
     |       |       |       |       |          The Moor           A11
P     |       #       #       #       |          Kings Road         I21
     |       |       |       |       |          Etz-Nab Woods      Z11
Q     |     #-#-#-S   |     #-#-#     |          Palace             U11
     |     |   |     |     |   |     |
R     D-#-#-# C #-#-#-#-#-#-#-# #-#-#-W          D - manhole to the
     |     | | |     |       | |     |          sewers
S     |   S-#-#-#-S   #     I-#-#     |
     |     | | |     |       |       |          R - the rampart walls
T     |     S # S   #-#-#   S-#-O     |          of Midgaard
     |       |     | | |     |       |
U     |       #-----# P #-----#       |
     |       |     |   |     |       |
V     |       #     #-#-#     #       |
     |       |       |       |       |
W     |       #       #       #       |
     |       |       |       |       |
X     W-------W-------G-------W-------W
     |               |
Y     G             R-#-R
                     |
Z                     @

Artist: Tarus the Rabbit Slayer"
end

                             quill

names {"goose-feather quill", "goose-feather", "quill"}
title "a goose-feather quill"
descr "A goose-feather quill is lying here."
type ITEM_PEN
manipulate {MANIPULATE_TAKE, MANIPULATE_HOLD}
weight 1
cost 2   IRON_PIECE
end


                            meat_cleaver

names {"meat cleaver","cleaver"}
title "a meat cleaver"
descr "A meat cleaver has been left here."
manipulate {MANIPULATE_TAKE, MANIPULATE_WIELD}
/* Not pure Iron + Craftman ship = -5% */
WEAPON_DEF(WPN_HAND_AXE, -5, 0)
weight 4
cost 2   SILVER_PIECE
end


                             raft

names {"raft"}
title "a raft"
descr "A raft has been left here."
inside_descr
"You are on a wooden raft."
type ITEM_BOAT
manipulate {MANIPULATE_TAKE, MANIPULATE_ENTER}
flags {UNIT_FL_TRANS}
capacity 1000
weight 20
cost 7   COPPER_PIECE
extra {}
"The raft looks very primitive."
end

canoe

names {"canoe"}
title "a canoe"
descr "A canoe has been left here."
inside_descr
"You are in a light but sturdy canoe."
type ITEM_BOAT
manipulate {MANIPULATE_TAKE, MANIPULATE_ENTER}
flags {UNIT_FL_TRANS}
capacity 2000
weight 30
cost 4   SILVER_PIECE
extra {}
"The canoe is fairly light."
end

                          oilskin_boots

names {"oilskin boots","boots"}
title "a pair of heavy oilskin boots"
descr "A pair of heavy oilskin boots lies here."
extra {}
"They are made from thick oilskin that has been reinforced with hard wood."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_FEET}
ARMOUR_HRD_LEATHER(0, 0)
weight 5
cost 14   COPPER_PIECE
end

                            southwester

names {"southwester"}
title "a southwester"
descr "A southwester is lying on the ground."
extra {}
"It is made from thick oilskin and looks to give good protection from rain and
some protection from blows."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
ARMOUR_LEATHER(0, 0)
weight 2
cost 18   COPPER_PIECE
end

                              rnd_coins
/* Rest is inserted at runtime */
MONEY(IRON_PIECE, 3)
end

                             wheelbarrow

names {"wheelbarrow"}
title "a wheelbarrow"
descr "A green-painted wheelbarrow is standing here."
inside_descr
"You are riding in a wheelbarrow."
type ITEM_BOAT
manipulate {MANIPULATE_TAKE, MANIPULATE_ENTER}
flags {UNIT_FL_TRANS}
capacity 250
weight 30
cost 2   SILVER_PIECE
extra {}
"It is a heavy wheelbarrow made from solid oaken planks that have been painted
a dark, green colour."
end


/* ------------------------- TAILOR ITEMS ------------------------- */

                             pointy_hat

names {"pointy", "hat"}
title "a pointy hat"
descr "A pointy hat is lying on the ground."
extra {} "It is the sort of hat most wizards fancy."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_HEAD}
/*  Gives protection as a leather cap  */
ARMOUR_CLOTHES(-3, 0)
weight 1
cost 3   COPPER_PIECE
end

                                robe1

names {"robe"}
title "a robe"
descr "A robe is lying on the ground."
extra {} "It is the sort of robe most wizards fancy."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ABOUT}
type ITEM_WORN
weight 1
cost 6   COPPER_PIECE
end


                               cloak1

names {"cloak"}
title "a cloak"
descr "A cloak is lying on the ground."
extra {} "It is the sort of cloak most wizards fancy."
manipulate {MANIPULATE_TAKE, MANIPULATE_WEAR_ABOUT}
type ITEM_WORN
weight 1
cost 6   COPPER_PIECE
end

/* ----------------------- NON-MOVABLE VARIOUS ----------------------- */


                              odin_statue

/* Statue which contains the things to players (pray function) */
names {"odin", "statue of odin", "statue"}
title "the statue"
descr "A statue of Odin is behind the altar."
extra {}
"It depicts Odin sitting on his throne, two large wolves by his feet and two
ravens sitting on the back of the throne.  He has long grey hair and beard,
and looks grave and thoughtful."
type ITEM_OTHER
weight 2000

dilcopy odinstatue@udgaard();

end



                            prom_bench

names {"bench"}
title "the Bench"
descr "A white-painted wooden bench is standing here."
type ITEM_OTHER
weight 100
extra {}
"It is a quite heavy but very comfortable bench.  It is placed with its front
towards the river so you can sit and watch the river and the houses on the
other side."
end


                            park_bench

names {"bench"}
title "the Bench"
descr "A white-painted wooden bench is standing here."
type ITEM_OTHER
weight 100
extra {}
"It is a quite heavy but very comfortable bench."
end

                              fountain

names {"white fountain", "fountain", "water"}
title "a fountain"
descr "A small white fountain is standing at the end of the road."
LIQ_DEF("clear", 100,-1,5000,10,1,0,0)
spell 200
extra {}
"It is very nice.  Made from fine white marble."
end

                          bull_board

names {"bulletin board", "board"}
title "a bulletin board"
descr "A large bulletin board is mounted on a wall here."
type ITEM_OTHER
dilcopy board@boards("citizen","","rem_res@boards","",100);
end

                          god_board

names {"bulletin board", "board", "God Assistance Board", "Assistance Board"}
title "a bulletin board"
descr "A God Assistance Board bulletin board is mounted on a wall here."
type ITEM_OTHER
dilcopy board@boards("citizen","","rem_res@boards","",100);
end

/* -------------------------- ZONE RESET -------------------------- */

#define ARMOUR_S3   \
  equip lth_sleeves1 position WEAR_ARMS   \
  equip lth_jerkin1 position WEAR_BODY    \
  equip lth_pants1 position WEAR_LEGS

#define ARMOUR_S8   \
  equip lth_sleeves1 position WEAR_ARMS   \
  equip lth_jerkin1 position WEAR_BODY    \
  equip lth_pants1 position WEAR_LEGS

#define ARMOUR_S30   \
  equip iron_bracers position WEAR_ARMS   \
  equip iron_plate position WEAR_BODY    \
  equip iron_leggings position WEAR_LEGS     \
  equip iron_boots position WEAR_FEET     \
  equip iron_gloves position WEAR_HANDS   \
  equip iron_helmet position WEAR_HEAD

%reset

load randall into wand_shop max 1

load mid_clerk into mid_storage@midgaard max 1


/*engraver stuff*/
load veejay into engraver_shop max 1
load engraver_sign into tailor_st3@midgaard max 1


/* ----- BASIS STUFF ----- */

load bull_board into th_citizen max 1
load odin_statue into cth_altar local 1

/* Load items for players here */

load prom_bench into s_prom2 max 5 local 1
load prom_bench into s_prom5 max 5 local 1
load park_bench into park6 max 5 local 1

load desk into accuse_room max 1
{
   load safe_key
}

load safe into accuse_room max 1
{
   load safe_coins
}

load udgaard/reward_board into accuse_room local 1

load fountain into palace_sq max 1
load rnd_coins into penny_lane2 max 1
load wheelbarrow into park_rd2 local 1 max 1


/* ----- SHOP KEEPERS ----- */

load baker into baker_shop max 1
{
   equip sword0 position WEAR_WIELD
}
load sent_guard into baker_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}


load butcher into butcher_shop max 1
{
   equip meat_cleaver position WEAR_WIELD
}
load sent_guard into butcher_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load fishmonger into fish_shop max 1
{
   equip sword0 position WEAR_WIELD
}
load sent_guard into fish_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load greengrocer into greeng_shop max 1
{
   equip sword0 position WEAR_WIELD
}
load sent_guard into greeng_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load ironmonger into ironmon_shop max 1
{
   equip sword0 position WEAR_WIELD
}
load sent_guard into ironmon_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load weaponsmith into weapon_shop max 1
{
   load mace
   load wdclb0
   load wdclb2
   load dag0
   load sword0
   load lsword0
   load ham0
   load smithtool
   load spear0
   load flail1
   equip sword0 position WEAR_WIELD
}

load sent_guard into weapon_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load armourer into armour_shop max 1
{
   load scale_coif
   load scale_gloves
   load scale_sleeves
   load scale_jerkin
   load scale_skirt
   load scale_boots
   load chain_coif
   load chain_sleeves
   load chain_jerkin
   load chain_skirt

    /* armor  should not sell plate it should be faught for*/
   load swood_shield
   load smetal_shield
   load lmetal_shiel

   equip sword0 position WEAR_WIELD
}
load sent_guard into armour_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load leather_worker into leather_shop max 1
{
   load lth_cap
   load lth_gloves
   load lth_sleeves
   load lth_jerkin
   load lth_pants
   load lth_boots

   load hlth_cap
   load hlth_gloves
   load slth_sleeves
   load slth_jerkin
   load slth_pants
   load hlth_boots
   load leather_tool
   equip sword0 position WEAR_WIELD
}
load sent_guard into leather_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load gnome into magic_shop max 1
{
load p_rpoison
load p_cdisease
load p_dalignment
load p_dinvisible
load scroll_clight
load nightshade
load rose_bouquet
}
load sent_guard into magic_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load tailor into tailor_shop max 1
{
   load pointy_hat
   load robe1
   load cloak1
   load needle
   equip sword0 position WEAR_WIELD
}
load sent_guard into tailor_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load jeweller into jewel_shop max 1
{
   load goldring
   load silverring
   load pendant
   load amethyst
   equip sword0 position WEAR_WIELD
}
load sent_guard into jewel_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load sailor into boat_shop max 1
{
   load raft
   load canoe
   load lantern
   load oilskin_boots
   equip sword0 position WEAR_WIELD
}
load sent_guard into boat_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load carpenter into carp_shop max 1
{
   equip sword0 position WEAR_WIELD
}
load sent_guard into carp_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load mortician into mortician_shop max 1
{
   load coffin
}

load sent_guard into mortician_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load pet_boy into pet_shop max 1

load sent_guard into pet_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load banker into bank max 1

load sent_guard into bank local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load postman into post_office max 1
/*{
    load box
}*/

load sent_guard into post_office local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

load blacksmith into bsmith_shop max 1

load sent_guard into bsmith_shop local 1
{
  ARMOUR_S3
  equip spear0 position WEAR_WIELD
}

/* ------------------------- BARTENDERS ------------------------ */

load boar_tender into grunting_inn max 1
{
   load tuborg@udgaard
   load beer_barrel
   load beer_bottle
   equip lsword0 position WEAR_WIELD
}

load filthy_tender into grub_inn max 1
{
   load tuborg@udgaard
   load firebreather
   load speciality
   equip grub_key position WEAR_HOLD
   equip lsword0 position WEAR_WIELD
}

load madame into grub_corr max 1

load fanny into grub_joy1 max 1

load giacomo into grub_joy2 max 1

load maid_tender into park_cafe max 1
{
   load tea_cup
   load coffe_cup
   load water_cup
}

load receptionist into reception max 1
{
   equip sword0 position WEAR_WIELD
}



/* ------------------------ THE LAW ----------------------------- */

load guard_sales into guard_yard max 1
{
  load cuffs
}

load teach_spell into guard_spell max 1
{
  equip staff position WEAR_WIELD
}

load teach_skill into guard_skill max 1
{
  equip staff position WEAR_WIELD
}

/* . .. . . . .  setup the captains office . . . . . . */

load captain into accuse_room max 1
{
  load desk_key
  load jail_key

  load bread
  load water_cup

  /* These ought to *follow* the captain */
  follow capt_follow local 4
  {
     equip flail1 position WEAR_WIELD
     ARMOUR_S3
  }
  follow capt_follow local 4
  {
     equip flail1 position WEAR_WIELD
     ARMOUR_S3
  }
  follow capt_follow local 4
  {
     equip flail1 position WEAR_WIELD
     ARMOUR_S3
  }
  follow capt_follow local 4
  {
     equip flail1 position WEAR_WIELD
     ARMOUR_S3
  }

  ARMOUR_S30
  equip sword2 position WEAR_WIELD
}

/* . . . . . .  setup gate guards . . . . . . */
load ngate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load ngate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load ngate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load ngate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}

load egate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load egate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load egate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load egate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}

load wgate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load wgate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load wgate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load wgate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}

load sgate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load sgate_dguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load sgate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}
load sgate_nguard into guard_dorm max 2
{
   ARMOUR_S8
   equip spear0 position WEAR_WIELD
}

/* . . . . . .  setup patrolling guards . . . . . . */

load patrol_guard1 into cth_sanctum max 4  /* 0 moves to sanctum  */
{
   ARMOUR_S8
   equip lsword0 position WEAR_WIELD
}
load patrol_guard1 into in_sgate max 4     /* 13 moves to sanctum */
{
   ARMOUR_S8
   equip lsword0 position WEAR_WIELD
}
load patrol_guard1 into guard_dorm max 4   /* 4 moves to sanctum  */
{
   ARMOUR_S8
   equip lsword0 position WEAR_WIELD
}
load patrol_guard1 into east_bridge max 4  /* 7 moves to sanctum  */
{
   ARMOUR_S8
   equip lsword0 position WEAR_WIELD
}

load patrol_guard2 into market_sq max 4
{
   ARMOUR_S8
   equip lsword0 position WEAR_WIELD
}
load patrol_guard2 into royal_av5 max 4
{
   ARMOUR_S8
   equip lsword0 position WEAR_WIELD
}

/* ----- SERVICES ----- */

load janitor1 into s_prom3 max 6
load janitor1 into s_prom1 max 6
load janitor2 into wall_rd4 max 6
load janitor2 into wall_rd11 max 6

load librarian into th_library max 1
load blood_book into th_library

/* ----- CITIZENS ----- */

load quasimodo into cth_se_tower max 1
{
   equip altar_key position WEAR_HOLD
}
load temple_guard into cth_sanctum max 1
{
   ARMOUR_S8
   equip lsword0 position WEAR_WIELD
}

load papi_kitten into palace_sq zonemax 1

load god_board into cth_sanctum local 1

load mercenary into col_rd5 max 1
{
   load paper
   equip sword0 position WEAR_WIELD
}

load drunk into grub_inn local 1 max 2
{
   load ale_bottle
}
load drunk into park3 local 1 max 2
{
   load brandy_bottle
}
load beggar into wall_rd15 max 1
load sexton into park_cafe max 1
{
   load candlestick
}

/* ----- CITY ANIMALS ----- */

load fido_dog into col_rd5 max 10
load fido_dog into cth_road max 10
load odif_god into glad_rd1 max 1

load swan into park_pond max 1
load duckling into park_pond max 1
load sparrow into park_circle max 1
load duck into park3 max 1

load raven into cth_n_tower max 1
load raven into warehouse max 2


/* ----- TOWN HALL ----- */

load secretary into th_entrance max 1
load mayor into th_council max 1
{
   equip city_key max 1 position WEAR_HOLD
}
load crier into col_sq4 max 1


door wall_rd6 SOUTH {EX_OPEN_CLOSE, EX_CLOSED}
door wall_rd3 SOUTH {EX_OPEN_CLOSE, EX_CLOSED}
door wall_rd14 NORTH {EX_OPEN_CLOSE, EX_CLOSED}
door wall_rd11 NORTH {EX_OPEN_CLOSE, EX_CLOSED}
%end