From 7a05bb4e3cd9cfa9d949e26ee6c0b447d687179e Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Mon, 13 Dec 2004 22:39:39 +0000 Subject: [PATCH] cleaned up rock wraping/deleting --- main.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/main.c b/main.c index 97f7a67..5724a1a 100644 --- a/main.c +++ b/main.c @@ -1114,18 +1114,25 @@ int gameloop() { yship += yscroll; // Move all the rocks - for(i = 0; i YSIZE)) rock[i].active = 0; - if(rock[i].y > YSIZE) { - rock[i].y -= YSIZE; - rock[i].y -= rock[i].image->w; - } else if(rock[i].y < -rock[i].image->w) { - rock[i].y += YSIZE; - rock[i].y += rock[i].image->w; + for(i = 0; i < MAXROCKS; i++) { + if(rock[i].active) { + rock[i].x += rock[i].xvel*movementrate; + rock[i].y += rock[i].yvel*movementrate + yscroll; + if((rock[i].y > YSIZE && rock[i].y > 0) || (rock[i].y < -rock[i].image->h && rock[i].y < 0)) { + if(rock[i].dead) { + rock[i].dead = 0; + rock[i].active = 0; + } else { + // wrap + rock[i].y = (YSIZE - rock[i].image->h) - rock[i].y; + rock[i].y += (rock[i].yvel*movementrate + yscroll) * 2; + } + } + if(rock[i].x < -32.0 || rock[i].x > XSIZE + 32.0) { + rock[i].active = 0; + rock[i].dead = 0; + } } - if(rock[i].x < -32.0) rock[i].active = 0; } -- 1.7.10.4