Example #1
0
void Water::VectorWave(Point3 &p, Point3 &n) {

	int i;
	float f,pd;
	Point3 d,v;
	n.x = n.y = n.z = 0.0f;
	for (i = 0; i < count; i++)	{
		WaveDesc &wd = waves[i];
		pd = wd.period;
		v.x = (p.x-wd.cent[0])/pd;								
		v.y = (p.y-wd.cent[1])/pd;								
		v.z = (p.z-wd.cent[2])/pd;								
		vwave(v,wd.rate,d);
		f = pd/maxperiod;
		n += f*d;
		}
	f = amp/((float)count);
	n *= f;
	}
Example #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");
	}
}