From ab277eabb4f3be740d7841b76c74eaa1404671ba Mon Sep 17 00:00:00 2001
From: Allanis <allanis@saracraft.net>
Date: Sat, 6 Jul 2013 16:42:28 +0100
Subject: [PATCH] [Change] pilot_free uses memmove.

---
 src/pilot.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/pilot.c b/src/pilot.c
index 3ecb6c2..6524917 100644
--- a/src/pilot.c
+++ b/src/pilot.c
@@ -1032,17 +1032,18 @@ void pilot_free(Pilot* p) {
 /* Destroy pilot from stack. */
 void pilot_destroy(Pilot* p) {
   int i;
+
+  /* Find the pilot. */
   for(i = 0; i < pilot_nstack; i++)
     if(pilot_stack[i] == p)
       break;
 
+  /* Pilot is eliminated. */
+  pilot_free(p);
   pilot_nstack--;
 
-  while(i < pilot_nstack) {
-    pilot_stack[i] = pilot_stack[i+1];
-    i++;
-  }
-  pilot_free(p);
+  /* Copy other pilots down. */
+  memmove(&pilot_stack[i], &pilot_stack[i+1], (pilot_nstack-i)*sizeof(Pilot*));
 }
 
 /* Free the prisoned pilot! */