Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv7561/src

Modified Files:
	local.c 
Log Message:
Merge a bunch of common angular sound code into SetDistAngle() function.

Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -d -r1.66 -r1.67
--- local.c	1 Mar 2007 18:31:18 -0000	1.66
+++ local.c	13 Mar 2007 19:11:10 -0000	1.67
@@ -40,6 +40,8 @@
 static int last_speed = 0;
 static int streaks_on = 0;
 #ifdef SOUND
+static int distance = 0;	/* For angular sound */
+static int angle = 0;		/* For angular sound */
 static int sound_torps = 0;
 static int sound_other_torps = 0;
 static int num_other_torps = 0;
@@ -75,6 +77,32 @@
 
 /* Function Defininitions */
 
+#ifdef SOUND
+/* Sets global variables distance and sound used with angular sound */
+void SetDistAngle(int dx, int dy)
+{
+    int newdx, newdy;
+
+    newdx = dx - WINSIDE/2;
+    newdy = dy - WINSIDE/2;
+
+    distance = (int) sqrt((newdx)*(newdx) + (newdy)*(newdy));
+    // Normalize from 0 to 255, 0 being on top of player, 255 being max distance
+    // which would be a diagonal from player to corner of tactical
+    // Reason for normalization is Mix_SetDistance requires that range        
+    distance = (int)((255 * distance)/CORNER_DIST);
+    // Calculate angle, then adjust as necessary for Mix_SetDistance
+    if (distance != 0)
+    {
+        angle = (int)(atan2(-newdy, newdx)*180/XPI);
+        angle = 90 - angle;
+    }
+    else
+        angle = 0;
+    return;
+}
+#endif
+
 int
 randcolor()
 {
@@ -641,7 +669,6 @@
     const int view = SCALE * WINSIDE / 2 + BMP_SHIELD_WIDTH * SCALE / 2;
     int dx, dy, px, py, wx, wy, tx, ty, lx, ly;
     int new_dx, new_dy;
-    int newdx, newdy, distance, angle;
 
     W_Icon (*ship_bits)[SHIP_VIEWS];
     W_Icon (*ship_bitsHR);
@@ -722,23 +749,8 @@
                 {
                     // To avoid hearing twarp cloak sounds as the twarper/observer
                     if ( (myPlayer(j) || isObsLockPlayer(j)) ? ((me->p_flags & PFTWARP) ? 0 : 1) : 1 )
-                    {            
-                        newdx = dx - WINSIDE/2;
-                        newdy = dy - WINSIDE/2;
-
-                        distance = (int) sqrt((newdx)*(newdx) + (newdy)*(newdy));
-                        // Normalize from 0 to 255, 0 being on top of player, 255 being max distance
-                        // which would be a diagonal from player to corner of tactical
-                        // Reason for normalization is Mix_SetDistance requires that range        
-                        distance = (int)((255 * distance)/CORNER_DIST);
-                        // Calculate angle, then adjust as necessary for Mix_SetDistance
-                        if (distance != 0)
-                        {
-                            angle = (int)(atan2(-newdy, newdx)*180/XPI);
-                            angle = 90 - angle;
-                        }
-                        else
-                            angle = 0;
+                    {
+                    	SetDistAngle(dx, dy);   
                         // At short distances, don't use angular sound
                         if (!soundAngles || distance < SCALE/2)
                             Play_Sound_Loc(CLOAKED_WAV, SF_CLOAKING, -1, distance);
@@ -762,23 +774,8 @@
                 {
                     if (j->p_cloakphase == cloak_phases - 1)
                     {
-                        newdx = dx - WINSIDE/2;
-                        newdy = dy - WINSIDE/2;
-                        
-                        distance = (int) sqrt((newdx)*(newdx) + (newdy)*(newdy));
-                        // Normalize from 0 to 255, 0 being on top of player, 255 being max distance
-                        // which would be a diagonal from player to corner of tactical
-                        // Reason for normalization is Mix_SetDistance requires that range        
-                        distance = (int)((255 * distance)/CORNER_DIST);
-                        // Calculate angle, then adjust as necessary for Mix_SetDistance
-                        if (distance != 0)
-                        {
-                            angle = (int)(atan2(-newdy, newdx)*180/XPI);
-                            angle = 90 - angle;
-                        }
-                        else
-                            angle = 0;
-                         // At short distances, don't use angular sound
+                        SetDistAngle(dx, dy);
+                        // At short distances, don't use angular sound
                         if (!soundAngles || distance < SCALE/2)
                             Play_Sound_Loc(UNCLOAK_WAV, SF_CLOAKING, -1, distance);
                         else
@@ -1297,24 +1294,7 @@
                 }
                 else
                 {
-                    int newdx, newdy, distance, angle;
-
-                    newdx = dx - WINSIDE/2;
-                    newdy = dy - WINSIDE/2;
-
-                    distance = (int) sqrt((newdx)*(newdx) + (newdy)*(newdy));
-                    // Normalize from 0 to 255, 0 being on top of player, 255 being max distance
-                    // which would be a diagonal from player to corner of tactical
-                    // Reason for normalization is Mix_SetDistance requires that range        
-                    distance = (int)((255 * distance)/CORNER_DIST);
-                    // Calculate angle, then adjust as necessary for Mix_SetDistance
-                    if (distance != 0)
-                    {
-                        angle = (int)(atan2(-newdy, newdx)*180/XPI);
-                        angle = 90 - angle;
-                    }
-                    else
-                        angle = 0;
+                    SetDistAngle(dx, dy);
                     // At short distances, don't use angular sound
                     if (!soundAngles || distance < SCALE/2)
                     {
@@ -1383,24 +1363,7 @@
                     Play_Sound(PHASER_WAV, SF_WEAPONS);
                 else
                 {
-                    int newdx, newdy, distance, angle;
-
-                    newdx = dx - WINSIDE/2;
-                    newdy = dy - WINSIDE/2;
-
-                    distance = (int) sqrt((newdx)*(newdx) + (newdy)*(newdy));
-                    // Normalize from 0 to 255, 0 being on top of player, 255 being max distance
-                    // which would be a diagonal from player to corner of tactical
-                    // Reason for normalization is Mix_SetDistance requires that range        
-                    distance = (int)((255 * distance)/CORNER_DIST);
-                    // Calculate angle, then adjust as necessary for Mix_SetDistance
-                    if (distance != 0)
-                    {
-                        angle = (int)(atan2(-newdy, newdx)*180/XPI);
-                        angle = 90 - angle;
-                    }
-                    else
-                        angle = 0;
+                    SetDistAngle(dx, dy);
                     // At short distances, don't use angular sound
                     if (!soundAngles || distance < SCALE/2)
                         Play_Sound_Loc(PHASER_OTHER_WAV, SF_OTHER|SF_WEAPONS, -1, distance);
@@ -1861,24 +1824,7 @@
 #ifdef SOUND
                 if (k->t_fuse == (MAX(2, BMP_TORPDET_FRAMES * server_ups / 10) - 1))
                 {
-                    int newdx, newdy, distance, angle;
-
-                    newdx = dx - WINSIDE/2;
-                    newdy = dy - WINSIDE/2;
-
-                    distance = (int) sqrt((newdx)*(newdx) + (newdy)*(newdy));
-                    // Normalize from 0 to 255, 0 being on top of player, 255 being max distance
-                    // which would be a diagonal from player to corner of tactical
-                    // Reason for normalization is Mix_SetDistance requires that range        
-                    distance = (int)((255 * distance)/CORNER_DIST);
-                    // Calculate angle, then adjust as necessary for Mix_SetDistance
-                    if (distance != 0)
-                    {
-                        angle = (int)(atan2(-newdy, newdx)*180/XPI);
-                        angle = 90 - angle;
-                    }
-                    else
-                        angle = 0;
+                    SetDistAngle(dx, dy);
                     // At short distances, don't use angular sound
                     if (!soundAngles || distance < SCALE/2)
                         Play_Sound_Loc(TORP_HIT_WAV, SF_WEAPONS, -1, distance);
@@ -2123,24 +2069,7 @@
 #ifdef SOUND
             if (pt->pt_fuse == (MAX(2, BMP_TORPDET_FRAMES * server_ups / 10) - 1))
             {
-                int newdx, newdy, distance, angle;
-
-                newdx = dx - WINSIDE/2;
-                newdy = dy - WINSIDE/2;
-    
-                distance = (int) sqrt((newdx)*(newdx) + (newdy)*(newdy));
-                // Normalize from 0 to 255, 0 being on top of player, 255 being max distance
-                // which would be a diagonal from player to corner of tactical
-                // Reason for normalization is Mix_SetDistance requires that range        
-                distance = (int)((255 * distance)/CORNER_DIST);
-                // Calculate angle, then adjust as necessary for Mix_SetDistance
-                if (distance != 0)
-                {
-                    angle = (int)(atan2(-newdy, newdx)*180/XPI);
-                    angle = 90 - angle;
-                }
-                else
-                    angle = 0;
+                SetDistAngle(dx, dy);
                 // At short distances, don't use angular sound
                 if (!soundAngles || distance < SCALE/2)
                     Play_Sound_Loc(PLASMA_HIT_WAV, SF_WEAPONS, -1, distance);