#include <acknex.h>
#include <default.c>
var dest[20][20];
var source[20][20];
var tempv;
ENTITY* waterent;
PANEL* skeletonpan =
{
pos_x = 0; pos_y = 0;
digits( 0, 0, "nexus: %f", "Arial#18b", 1, nexus);
digits( 0, 20, "tempv: %f", "Arial#18b", 1, tempv);
flags = VISIBLE;
}
function main()
{
video_mode = 10;
video_screen = 1;
level_load("");
vec_set(camera.x, vector(0,50,50));
vec_set(camera.pan, vector(270,-45,0));
waterent = ent_create("waterent.hmp",nullvector,NULL);
var iloop=0, eloop=0;
CONTACT* c;
//
// Initialise arrays
for(iloop=0; iloop<20; iloop++)
{
for(eloop=0; eloop<20; eloop++)
{
dest[iloop][eloop] = 0;
source[iloop][eloop] = 0;
}
}
//
//
while(1)
{
for(iloop=1; iloop<18; iloop++)
{
for(eloop=1; eloop<18; eloop++)
{
//perform simulation
dest[iloop+1][eloop+1] = ((source[iloop-1+1][eloop+1]+source[iloop+1+1][eloop+1]+source[iloop+1][eloop-1+1]+source[iloop+1][eloop+1+1])/2)-dest[iloop+1][eloop+1];
dest[iloop+1][eloop+1] *= 0.95;
vec_to_mesh(vector(0,0,dest[iloop+1][eloop+1]), waterent, iloop*20+eloop+1);
//debugging
tempv = source[iloop+1][eloop+1];
}
}
for(iloop=1; iloop<18; iloop++)
{
for(eloop=1; eloop<18; eloop++)
{
//perform simulation
source[iloop+1][eloop+1] = ((dest[iloop-1+1][eloop+1]+dest[iloop+1+1][eloop+1]+dest[iloop+1][eloop-1+1]+dest[iloop+1][eloop+1+1])/2)-source[iloop+1][eloop+1];
source[iloop+1][eloop+1] *= 0.95;
vec_to_mesh (vector(0,0,source[iloop][eloop]), waterent, iloop*20+eloop+1);
//debugging
//tempv = source[iloop+1][eloop+1];
}
}
//
if(key_cuu)
{
source[10][10]+=30;
while(key_cuu)wait(1);
}
wait(1);
}
}