waves.c 1.7 KB

/**************************************************************************
 *                                                                        *
 *               Copyright (C) 1995, Silicon Graphics, Inc.               *
 *                                                                        *
 *  These coded instructions, statements, and computer programs  contain  *
 *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
 *  are protected by Federal copyright  law.  They  may not be disclosed  *
 *  to  third  parties  or copied or duplicated in any form, in whole or  *
 *  in part, without the prior written consent of Silicon Graphics, Inc.  *
 *                                                                        *
 *************************************************************************/
#include <ultra64.h>
#include "stress.h"

/*
 *  make_waves - animate water texture by changing SL,TL
 */
static int      cur_wave_top = 0;
static int      cur_wave_bot = 0;

void
make_waves(Dynamic * dynamicp)
{
	int             wst = 2;
	int             wsb = 1;

	if (cur_wave_top > ((64 << G_TEXTURE_IMAGE_FRAC) - wst))
		cur_wave_top = 0;

	if (cur_wave_bot > ((128 << G_TEXTURE_IMAGE_FRAC) - wsb))
		cur_wave_bot = 0;

	/*
	 * pool water 
	 */
	gDPSetTileSize(dynamicp->ani_water, G_TX_RENDERTILE, cur_wave_top, 0,
				   (64 << G_TEXTURE_IMAGE_FRAC), (64 << G_TEXTURE_IMAGE_FRAC));
	gSPEndDisplayList(dynamicp->ani_water + 1);

	/*
	 * pool bottom 
	 */
	gDPSetTileSize(dynamicp->ani_water_refl, G_TX_RENDERTILE, cur_wave_bot, 0,
				 (128 << G_TEXTURE_IMAGE_FRAC), (64 << G_TEXTURE_IMAGE_FRAC));
	gSPEndDisplayList(dynamicp->ani_water_refl + 1);

	cur_wave_top += wst;
	cur_wave_bot += wsb;
}