aboutsummaryrefslogtreecommitdiff
path: root/addons/visualization.vortex/resources/Presets/CubeRain.vtx
diff options
context:
space:
mode:
Diffstat (limited to 'addons/visualization.vortex/resources/Presets/CubeRain.vtx')
-rw-r--r--addons/visualization.vortex/resources/Presets/CubeRain.vtx70
1 files changed, 70 insertions, 0 deletions
diff --git a/addons/visualization.vortex/resources/Presets/CubeRain.vtx b/addons/visualization.vortex/resources/Presets/CubeRain.vtx
new file mode 100644
index 0000000000..5ddbae8e55
--- /dev/null
+++ b/addons/visualization.vortex/resources/Presets/CubeRain.vtx
@@ -0,0 +1,70 @@
+// CubeRain.vtx
+// Author - MrC
+// Based on CubeRain.r4 By Gordon Williams
+int x,y;
+float c,tm,tn,td;
+float[] c_x(256),c_y(256),c_z(256),c_vz(256),c_rx(256),c_ry(256),c_sx(256),c_sy(256),c_sz(256);
+
+float counter;
+Texture envTexture;
+
+void MakeNew(int n)
+{
+ c_x[n]=c_y[n]=0;
+ while (Mag(c_x[n],c_y[n])<1)
+ {
+ c_x[n] = (Rand()*8.0)-4.0;
+ c_y[n] = (Rand()*8.0)-4.0;
+ }
+
+ c_z[n] = 10;
+ c_vz[n] = (1.0+Rand())*4;
+ c_rx[n] = (1.0+Rand())*80;
+ c_ry[n] = (1.0+Rand())*80;
+ c_sx[n] = (0.5+Rand())*0.15;
+ c_sy[n] = (0.5+Rand())*0.15;
+ c_sz[n] = (0.5+Rand())*0.15;
+}
+
+void Init()
+{
+ envTexture.LoadTexture("env2.jpg");
+ counter = 0;
+
+ for (x=0;x<256;x=x+1)
+ {
+ MakeNew(x);
+ c_z[x] = Rand()*10;
+ }
+ tm = tn = 0;
+}
+
+void Render()
+{
+ td = ((TREBLE+1.0f)*TIMEPASS);
+ tm = tm + td;
+ tn = tn + ((BASS+1.5)*TIMEPASS*2);
+
+ gfxTranslate(Cos(tn * 1.23f) * 0.5f, Sin(tn) * 0.5f, 0.0f);
+ gfxRotate(Cos(tn*0.6734f)*20.0f, 1.0f, 0.0f, 0.0f);
+ gfxRotate(Sin(tn*0.2143f)*20.0f, 0.0f, 1.0f, 0.0f);
+
+ gfxSetEnvTexture(envTexture);
+
+ for (x=0;x<256;x=x+1)
+ {
+ c_z[x] = c_z[x] - (td*c_vz[x]);
+ if (c_z[x]<0)
+ {
+ MakeNew(x);
+ }
+ c = Cos(c_z[x]*0.05*3.1416);
+ gfxColour(c,c,c,1);
+ gfxPushMatrix();
+ gfxTranslate(c_x[x],c_y[x],c_z[x]);
+ gfxRotate(c_rx[x]*tm, 1, 0, 0);
+ gfxRotate(c_ry[x]*tm, 0, 1, 0);
+ gfxCube(-c_sx[x],-c_sy[x],-c_sz[x],c_sx[x],c_sy[x],c_sz[x]);
+ gfxPopMatrix();
+ }
+}