foo
[dosdemo] / src / thunder.c
index 59843c2..cacb7b5 100644 (file)
@@ -20,7 +20,7 @@ static unsigned char *blurBuffer, *blurBuffer2;
 
 #define THUNDER_RECT_SIZE 2
 #define THUNDER_RANDOMNESS 16
-#define THUNDER_SECONDS 0.1f
+#define THUNDER_SECONDS 0.075f
 
 #define VERTEX_COUNT 12
 #define PERSPECTIVE_NEUTRAL_DEPTH 0.5f
@@ -33,8 +33,6 @@ static unsigned char *blurBuffer, *blurBuffer2;
 
 #define CAMERA_DISTANCE 1.1f
 
-#define PI 3.14159f
-
 /* TODO: Load palette from file */
 static unsigned short palette[256];
 
@@ -188,7 +186,7 @@ void applyBlur() {
 }
 
 void blitEffect() {
-       unsigned int *dst1 = (unsigned int*) vmem_back;
+       unsigned int *dst1 = (unsigned int*) fb_pixels;
        unsigned int *dst2 = dst1 + 160; /* We're writing two pixels at once */
        unsigned char *src1 = blurBuffer + BLUR_BUFFER_WIDTH + 1;
        unsigned char *src2 = src1 + BLUR_BUFFER_WIDTH;
@@ -200,7 +198,7 @@ void blitEffect() {
                        tl = *src1;
                        tr = (*src1 + *(src1 + 1)) >> 1;
                        bl = (*src1 + *src2) >> 1;
-                       br = tr + ((*src2 + *(src2 + 1)) >> 1) >> 1;
+                       br = (tr + ((*src2 + *(src2 + 1)) >> 1)) >> 1;
 
                        /* Pack 2 pixels in each 32 bit word */
                        *dst1 = (palette[tr] << 16) | palette[tl];
@@ -290,20 +288,22 @@ void animateMesh() {
        by.y = 1.0f;
        by.z = 0.0f;
 
-       bz.x = cos(yRot + PI/2.0f);
+       bz.x = cos(yRot + M_PI/2.0f);
        bz.y = 0.0f;
-       bz.z = sin(yRot + PI/2.0f);
+       bz.z = sin(yRot + M_PI/2.0f);
 
        for (i = 0; i < VERTEX_COUNT; i++) {
                MyVertex v1, v2;
                v1 = vertexBuffer[i];
 
-               /* O re panaia mou */
 
+               v1.y *= sin(time_msec / 1000.0f + v1.x + v1.z);
+
+               /* O re panaia mou */
                v2.x = v1.x * bx.x + v1.y * by.x + v1.z * bz.x;
                v2.y = v1.x * bx.y + v1.y * by.y + v1.z * bz.y;
                v2.z = v1.x * bx.z + v1.y * by.z + v1.z * bz.z;
-               
+
                v2.z += CAMERA_DISTANCE;
 
                vertexBufferAnimated[i] = v2;