diff options
-rw-r--r-- | ball.h | 1 | ||||
-rw-r--r-- | glpong.c | 16 |
2 files changed, 10 insertions, 7 deletions
@@ -16,7 +16,6 @@ typedef struct Ball_t { void GLPong_BallInit(void); void GLPong_BallDeinit(void); void GLPong_BallAdd(Ball_t ** balls); -void GLPong_BallDelete(Ball_t * from, Ball_t * ball); void GLPong_BallDeleteAll(Ball_t * list); int GLPong_BallCollide(const Ball_t * a, const Ball_t * b); void GLPong_BallMoveAll(Ball_t ** balls); @@ -20,6 +20,7 @@ static GLuint SDL_GL_NPOTSurfaceToTexture(SDL_Surface * surface, GLfloat * wrati int main(int argc, char * argv[]) { + Ball_t * temp; GLPong_t GLPong = { NULL, NULL, @@ -60,7 +61,12 @@ int main(int argc, char * argv[]) { GLPong_BallAdd(&GLPong.balls); break; case GLPONG_DELETEBALL: -/* GLPong_BallDelete(GLPong.balls, GLPong.balls);*/ + if (GLPong.balls) { + temp = GLPong.balls; + GLPong.balls = GLPong.balls->next; + free(temp); + } + printf("%d balls\n", length(GLPong.balls)); break; } GLPong_BallMoveAll(&GLPong.balls); @@ -78,15 +84,13 @@ int main(int argc, char * argv[]) { SDL_GL_SwapBuffers(); /* end drawing */ - - - + SDL_Delay(10); } - + /* clean up */ GLPong_Deinit(&GLPong); - + return 0; } |