Ejemplo n.º 1
0
/*
  CARRY, TAKE etc.
*/
void ivtake()
{
    int anobj, item;

    anobj = 0;
    for (item = 1; item < MAXOBJ; ++item)
	if (g.place[item] == g.loc)
	    if (anobj == 0)
		anobj = item;
	    else {
		needobj();
		return;
	    }

    if (anobj == 0 || (dcheck() && g.dflag >= 2) || blind())
	needobj();
    else {
	object = anobj;
	if (verb == YANK)
	    vyank();
	else if (verb == WEAR)
	    vwear();
	else
	    vtake();
    }
    return;
}
Ejemplo n.º 2
0
/*
	Routine to process a transitive verb
*/
trverb()
{
	switch(verb){
	case CALM:
	case WALK:
	case QUIT:
	case SCORE:
	case FOO:
	case BRIEF:
	case SUSPEND:
	case HOURS:
	case LOG:
		actspk(verb);
		break;
	case TAKE:
		vtake();
		break;
	case DROP:
		vdrop();
		break;
	case OPEN:
	case LOCK:
		vopen();
		break;
	case SAY:
		vsay();
		break;
	case NOTHING:
		rspeak(54);
		break;
	case ON:
		von();
		break;
	case OFF:
		voff();
		break;
	case WAVE:
		vwave();
		break;
	case KILL:
		vkill();
		break;
	case POUR:
		vpour();
		break;
	case EAT:
		veat();
		break;
	case DRINK:
		vdrink();
		break;
	case RUB:
		if (object != LAMP)
			rspeak(76);
		else
			actspk(RUB);
		break;
	case THROW:
		vthrow();
		break;
	case FEED:
		vfeed();
		break;
	case FIND:
	case INVENTORY:
		vfind();
		break;
	case FILL:
		vfill();
		break;
	case READ:
		vread();
		break;
	case BLAST:
		vblast();
		break;
	case BREAK:
		vbreak();
		break;
	case WAKE:
		vwake();
		break;
	default:
		printf("This verb is not implemented yet.\n");
	}
}