/
#define NAME "kantele"
#define DEST "room/vill_track"
int manservant_dead, gate_open;
object manservant;
/*
 * This is just the facade to a castle. If you want to enable the
 * "enter" command, move the player to a hall or something (which
 * you have to design yourself).
 * The predefined string DEST is where a player should come when he
 * leaves the castle.
 *
 * This file is loaded automatically from "init_file". We have to move
 * ourself to where we are supposed to be.
 */
id(str) { return str == "mansion" || str == "sign" || str == "gate"; }

short() {
    return "The Mansion of Kantele is to the south";
}

long(str) {
    if (str == "sign") {
        write("\nBEWARE OF THE DOGS\n\n"+
               "SQUATTERS WILL BE EATEN !\n\n");
	return;
    }
    write("A large fence topped by barbed wire surronds the house, the only\n");
    write("entrance is a huge iron gate leading into the garden. There is a\n");
    write("sign on the gate. You can also see a bell rope.\n");
}

init() {
    add_action("enter");add_verb("south");
    add_action("pull_rope");add_verb("pull");
}

pull_rope(str) {
    if (str != "rope")
       return 1;
    else {
       if (gate_open == 1) {
          write("nothing happens...\n");
          return 1;
       } else {
          gate_open = 1;
	  say(call_other(this_player(), "query_name") +
	    " pulls the rope...\n");
          say("The gate opens !\n");
          say("Kanteles manservant arrives.\n");
          say("Kanteles manservant says: get lost punk !\n");
          write("The gate opens !\n");
          write("Kanteles manservant arrives.\n");
          write("Kanteles manservant says: get lost punk !\n");
	  if (!manservant || !living(manservant))
	      manservant = clone_object("players/kantele/manservant");
          move_object(manservant, environment(this_object()));
	}
    }
}

enter(str) {
    if (manservant && environment(manservant) == environment(this_object())) {
	write("Kanteles servant bars your way !\n");
    } else if (gate_open == 0) {
	write("The gates are closed.\n");
    } else {
	call_other(this_player(), "move_player",
            "south#players/kantele/brick_road");
    }
    return 1;
}

reset(arg) {
    /*
     * Move away the manservant, and close the gates.
     */
    if (manservant && living(manservant))
	call_other(manservant, "move_player", "X#players/kantele/castle");
    gate_open = 0;
    if (arg)
	return;
    move_object(this_object(), DEST);
}