From fc3276464a941d020afb495672c4ab9674fdc45a Mon Sep 17 00:00:00 2001
From: Allanis <allanis@saracraft.net>
Date: Fri, 6 Sep 2013 16:37:38 +0100
Subject: [PATCH] [Add] Targetting sounds implemented. [Add] More doxygen.

---
 snd/sounds/target.wav | Bin 0 -> 10690 bytes
 src/pilot.c           |  10 ++++-----
 src/player.c          |  46 ++++++++++++++++++++++++++++++++++++++----
 3 files changed, 47 insertions(+), 9 deletions(-)
 create mode 100644 snd/sounds/target.wav

diff --git a/snd/sounds/target.wav b/snd/sounds/target.wav
new file mode 100644
index 0000000000000000000000000000000000000000..471889032173cf20e82445dc716b76c3ac281624
GIT binary patch
literal 10690
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

literal 0
HcmV?d00001

diff --git a/src/pilot.c b/src/pilot.c
index 6f52454..fa36ee6 100644
--- a/src/pilot.c
+++ b/src/pilot.c
@@ -20,7 +20,7 @@
 #include "pilot.h"
 
 #define XML_ID    "Fleets"  /**< XML section identifier. */
-#define XML_FLEET "fleet
+#define XML_FLEET "fleet"
 
 #define FLEET_DATA  "../dat/fleet.xml" /**< Where to find fleet data. */
 
@@ -1308,9 +1308,9 @@ static Fleet* fleet_parse(const xmlNodePtr parent) {
           memcpy(tmp->pilots+(tmp->npilots-1), pilot, sizeof(FleetPilot));
           free(pilot);
         }
-      } while((cur = cur->next));
+      } while(xml_nextNode(cur));
     }
-  } while((node = node->next));
+  } while(xml_nextNode(node));
 #define MELEMENT(o,s) if(o) WARN("Fleet '%s' missing '"s"' element", tmp->name)
   MELEMENT(tmp->ai==NULL,       "ai");
   MELEMENT(tmp->faction==-1, "faction");
@@ -1348,13 +1348,13 @@ int fleet_load(void) {
       memcpy(fleet_stack+nfleets-1, tmp, sizeof(Fleet));
       free(tmp);
     }
-  } while((node = node->next));
+  } while(xml_nextNode(node));
 
   xmlFreeDoc(doc);
   free(buf);
   xmlCleanupParser();
 
-  DEBUG("Loaded %d fleet%c", nfleets, (nfleets==1)?' ':'s');
+  DEBUG("Loaded %d fleet%s", nfleets, (nfleets==1) ? "" : "s");
 
   return 0;
 }
diff --git a/src/player.c b/src/player.c
index cf74034..ed80e6b 100644
--- a/src/player.c
+++ b/src/player.c
@@ -53,6 +53,12 @@ static Ship* player_ship = NULL;        /**< Temp ship to hold when naming it. *
 static double player_px, player_py, player_vx, player_vy, player_dir; /**< More hack. */
 static int player_credits = 0;          /**< Temp hack on create. */
 
+/*
+ * Player sounds.
+ */
+static int snd_target = -1;
+static int snd_jump = -1;
+
 /* Player pilot stack - Ships she owns. */
 static Pilot** player_stack = NULL;     /**< Stack of ships player has. */
 static char** player_lstack = NULL;     /**< Names of the planet the ships are at. */
@@ -478,10 +484,15 @@ static int player_soundReserved = 0; /**< Has the player already reserved sound?
 static void player_initSound(void) {
   if(player_soundReserved) return;
 
+  /* Allocated channels. */
   sound_reserve(PLAYER_RESERVED_CHANNELS);
   sound_createGroup(PLAYER_ENGINE_CHANNEL, 0, 1); /* Channel for engine noises. */
   sound_createGroup(PLAYER_GUI_CHANNEL, 1, PLAYER_RESERVED_CHANNELS-1);
   player_soundReserved = 1;
+
+  /* Get sounds. */
+  snd_target = sound_get("target");
+  snd_jump = sound_get("jump");
 }
 
 /**
@@ -587,7 +598,7 @@ const char* player_rating(void) {
  * @fn int player_outfitOwned(const char* outfitname)
  *
  * @brief Get how many of the outfits the player owns.
- *    @param outfitname Outfit to check how many the player owns of.
+ *    @param outfitname Outfit to check how many the player owns.
  *    @return The number of outfits matching outfitname owned.
  */
 int player_outfitOwned(const char* outfitname) {
@@ -600,7 +611,13 @@ int player_outfitOwned(const char* outfitname) {
   return 0;
 }
 
-/* Return how many of the commodity the player has. */
+/**
+ * @fn int player_cargoOwned(const char* commodityname)
+ *
+ * @brief Get how many of the commodity the player has.
+ *    @param commodityname Commodity to check how many the player has.
+ *    @return The number of commodities owned matching commodityname.
+ */
 int player_cargoOwned(const char* commodityname) {
   int i;
 
@@ -623,7 +640,11 @@ void player_rmMissionCargo(unsigned int cargo_id) {
       return; /* Success. */
 }
 
-/* Render the background player stuff, namely planet target */
+/**
+ * @fn void player_renderBG(void)
+ *
+ * @brief Render the background player stuff, namely planet target gfx.
+ */
 void player_renderBG(void) {
   double x, y;
   glColour* c;
@@ -689,7 +710,11 @@ void player_render(void) {
   }
 }
 
-/* Render the player's GUI. */
+/**
+ * @fn void player_renderGUI(void)
+ *
+ * @brief Render the players GUI.
+ */
 void player_renderGUI(void) {
   int i, j;
   double x, y;
@@ -1668,6 +1693,10 @@ void player_targetHostile(void) {
         tp = pilot_stack[i]->id;
       }
     }
+
+  if((tp != PLAYER_ID) && (tp != player_target))
+    player_playSound(snd_target, 1);
+
   player_target = tp;
 }
 
@@ -1678,6 +1707,9 @@ void player_targetHostile(void) {
  */
 void player_targetNext(void) {
   player_target = pilot_getNextID(player_target);
+
+  if(player_target != PLAYER_ID)
+    player_playSound(snd_target, 1);
 }
 
 /**
@@ -1686,7 +1718,13 @@ void player_targetNext(void) {
  * @brief Player targets nearest pilot.
  */
 void player_targetNearest(void) {
+  unsigned int t;
+
+  t = player_target;
   player_target = pilot_getNearestPilot(player);
+
+  if((player_target != PLAYER_ID) && (t != player_target))
+    player_playSound(snd_target, 1);
 }
 
 /**