Update of /cvsroot/netrek/client/netrekxp/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27332/src
Modified Files:
local.c
Log Message:
Twarp cloak fix.
Index: local.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/local.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- local.c 27 Apr 2006 16:48:24 -0000 1.13
+++ local.c 27 Apr 2006 21:22:05 -0000 1.14
@@ -536,37 +536,39 @@
if (j->p_flags & PFCLOAK)
{
- // To avoid sounds at twarp "cloak" speed and the speed below it ("decloak" speed)
- if (j->p_cloakphase < (CLOAK_PHASES - 1)
- && (F_cloak_maxwarp ? (j->p_speed != 0xf && j->p_speed != 0xe): 1))
+ if (j->p_cloakphase < (CLOAK_PHASES - 1))
{
#ifdef SOUND
if (j->p_cloakphase == 0)
{
- if (newSound)
- {
- newdx = dx - WINSIDE/2;
- newdy = dy - WINSIDE/2;
+ // To avoid hearing twarp cloak sounds as the twarper/observer
+ if ( (myPlayer(j) || isObsLockPlayer(j)) ? ((me->p_flags & PFTWARP) ? 0 : 1) : 1 )
+ {
+ if (newSound)
+ {
+ 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
- angle = (int)(atan2(newdy, newdx)*180/XPI);
- angle = 270 - angle;
- // At short distances, don't use angular sound
- if (distance < SCALE/2)
- Play_Sound(CLOAKED_WAV);
+ 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
+ angle = (int)(atan2(newdy, newdx)*180/XPI);
+ angle = 270 - angle;
+ // At short distances, don't use angular sound
+ if (distance < SCALE/2)
+ Play_Sound(CLOAKED_WAV);
+ else
+ Play_Sound_Loc(CLOAKED_WAV, angle, distance);
+ }
else
- Play_Sound_Loc(CLOAKED_WAV, angle, distance);
- }
- else
- {
- if (myPlayer(j) || isObsLockPlayer(j))
- Play_Sound(CLOAK_SOUND);
+ {
+ if (myPlayer(j) || isObsLockPlayer(j))
+ Play_Sound(CLOAK_SOUND);
+ }
}
}
#endif
@@ -576,49 +578,48 @@
}
else
{
- // To avoid sounds at twarp "cloak" speed and the speed below it ("decloak" speed)
- if (j->p_cloakphase
- && (F_cloak_maxwarp ? (j->p_speed != 0xf && j->p_speed != 0xe): 1))
+ if (j->p_cloakphase)
{
#ifdef SOUND
- if (newSound)
+ // To avoid twarp cloak sounds as the twarper/observer
+ if ( (myPlayer(j) || isObsLockPlayer(j)) ? ((me->p_flags & PFTWARP) ? 0 : 1) : 1 )
{
- if (j->p_cloakphase == CLOAK_PHASES - 1)
+ if (newSound)
{
- newdx = dx - WINSIDE/2;
- newdy = dy - WINSIDE/2;
+ 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
- angle = (int)(atan2(newdy, newdx)*180/XPI);
- angle = 270 - angle;
- // At short distances, don't use angular sound
- if (distance < SCALE/2)
- Play_Sound(UNCLOAK_WAV);
- else
- Play_Sound_Loc(UNCLOAK_WAV, angle, distance);
-
+ 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
+ angle = (int)(atan2(newdy, newdx)*180/XPI);
+ angle = 270 - angle;
+ // At short distances, don't use angular sound
+ if (distance < SCALE/2)
+ Play_Sound(UNCLOAK_WAV);
+ else
+ Play_Sound_Loc(UNCLOAK_WAV, angle, distance);
+ }
+ else // Kill any channels with CLOAKED_WAV on them (group 1)
+ Mix_HaltGroup(1);
}
- else // Kill any channels with CLOAKED_WAV on them (group 1)
- Mix_HaltGroup(1);
-
- }
- else
- {
- if (myPlayer(j) || isObsLockPlayer(j))
+ else
{
- if (j->p_cloakphase == CLOAK_PHASES - 1)
- Play_Sound(UNCLOAK_SOUND);
- else
- Abort_Sound(CLOAK_SOUND);
+ if (myPlayer(j) || isObsLockPlayer(j))
+ {
+ if (j->p_cloakphase == CLOAK_PHASES - 1)
+ Play_Sound(UNCLOAK_SOUND);
+ else
+ Abort_Sound(CLOAK_SOUND);
+ }
}
- }
-
+ }
#endif
j->p_cloakphase--;