JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
blowing from where you died
[vor.git] / main.c
diff --git a/main.c b/main.c
index 71f014b..662aa97 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1002,6 +1002,8 @@ int gameloop() {
                                                // Create a new ship and start all over again
                                                state = GAMEPLAY;
                                                play_tune(1);
+                                               // xship = 10;
+                                               // yship = YSIZE/2;
                                                xvel = 3;
                                                yvel = 0;
                                        break;
@@ -1053,11 +1055,13 @@ int gameloop() {
                                        float blast_radius = START_RAD * state_timeout / 50.0;
                                        for(i = 0; i<MAXROCKS; i++ ) {
                                                float dx, dy, n;
+                                               if(rock[i].x <= 0) continue;
                                                dx = rock[i].x - xship;
                                                dy = rock[i].y - yship;
                                                n = sqrt(dx*dx + dy*dy);
                                                if(n < blast_radius) {
-                                                       rock[i].xvel += rockrate*dx/n;
+                                                       n *= 50;
+                                                       rock[i].xvel += rockrate*(dx+30)/n;
                                                        rock[i].yvel += rockrate*dy/n;
                                                }
                                        }
@@ -1120,6 +1124,10 @@ int gameloop() {
                                        rock[i].y += rock[i].image->w;
                                }
                                if(rock[i].x < -32.0) rock[i].active = 0;
+                               if(rock[i].xvel > 0) {
+                                       if(rock[i].y < 0 || rock[i].y > YSIZE) rock[i].active = 0;
+                                       if(rock[i].x > XSIZE) rock[i].active = 0;
+                               }
                        }
 
 
@@ -1154,10 +1162,6 @@ int gameloop() {
                                else {
                                        state = DEAD_PAUSE;
                                        state_timeout = 50.0;
-                                       xship = 10;
-                                       yship = YSIZE/2;
-                                       xvel = 0;
-                                       yvel = 0;
                                }
                        }