tmuck2.4/
tmuck2.4/admin/scripts/
tmuck2.4/docs/
tmuck2.4/minimal-db/
tmuck2.4/minimal-db/data/
tmuck2.4/minimal-db/logs/
tmuck2.4/minimal-db/muf/
tmuck2.4/old/
tmuck2.4/src/
tmuck2.4/src/compile/
tmuck2.4/src/editor/
tmuck2.4/src/game/
tmuck2.4/src/interface/
tmuck2.4/src/scripts/
tmuck2.4/src/utilprogs/
/* Copyright (c) 1992 by David Moore.  All rights reserved. */
#include "copyright.h"
/* unlink.c,v 2.3 1993/04/08 20:24:37 dmoore Exp */

#include "config.h"

#include "db.h"
#include "params.h"		/* LINK_COST */
#include "match.h"
#include "externs.h"


void do_unlink(const dbref player, const char *name, const char *ignore1, const char *ignore2)
{
    dbref exit;
    struct match_data md;
    
    init_match(player, name, TYPE_EXIT, &md);
    match_all_exits(&md);
    match_here(&md);
    if (Wizard(player)) {
	match_absolute(&md);
    }
    
    exit = match_result(&md);
    switch (exit) {
    case NOTHING:
	notify(player, "Unlink what?");
	break;
    case AMBIGUOUS:
	notify(player, "I don't know which one you mean!");
	break;
    default:
	if (!controls(player, exit, Wizard(player))) {
	    notify(player, "Permission denied.");
	} else {
	    switch (Typeof(exit)) {
	    case TYPE_EXIT:
		if (GetNDest(exit) > 0) {
		    IncPennies(GetOwner(exit), LINK_COST);
		}
		FreeLink(exit);
		notify(player, "Unlinked.");
		break;
	    case TYPE_ROOM:
		FreeLink(exit);
		notify(player, "Dropto removed.");
		break;
	    default:
		notify(player, "You can't unlink that!");
		break;
	    }
	}
    }
}