diff src/weapons.c @ 20:9f180bf494bd default tip

Made torps and fighter wobbly. They have a chance of tracking randomly instead of staying straight or seeking if in nebulous terrain. Option is turned on when NEBULA_EFFECT contains PHOTON and/or FIGHTER.
author darius
date Wed, 24 Dec 1997 12:42:09 +0000
parents ed82a42ba89d
children
line wrap: on
line diff
--- a/src/weapons.c	Wed Dec 24 12:40:04 1997 +0000
+++ b/src/weapons.c	Wed Dec 24 12:42:09 1997 +0000
@@ -67,8 +67,8 @@
 void
 explode_damage(torp, radius, why)
   struct basetorp *torp;
-  int radius;
-  int why;
+int radius;
+int why;
 {
   register int i;		/* looping var */
   int dx, dy, dist;		/* to calc distance from torp to players */
@@ -84,11 +84,11 @@
       continue;			/* Torps no longer damage owner. */
 
     if ((torp->bt_status == TDET)	/* if torp was detted then */
-	&& ((j->p_no == torp->bt_owner) ||	/* cannot damage firing
-						 * player */
-	    ((j->p_no != torp->bt_whodet)	/* cannot damage players on
-						 * same team */
-	     && (j->p_team == players[torp->bt_whodet].p_team)))
+				&& ((j->p_no == torp->bt_owner) ||	/* cannot damage firing
+																						 * player */
+						((j->p_no != torp->bt_whodet)	/* cannot damage players on
+																					 * same team */
+						 && (j->p_team == players[torp->bt_whodet].p_team)))
       )				/* except the detter */
       continue;
 
@@ -102,16 +102,16 @@
       continue;			/* then continue */
     if (dist > EXPDIST * EXPDIST)	/* if not direct hit */
       damage = torp->bt_damage * (radius - sqrt((double) dist)) /
-	(radius - EXPDIST);
+			(radius - EXPDIST);
     else			/* else if direct hit */
       damage = torp->bt_damage;	/* do torp damage */
 
     if (damage > 0)
     {				/* if damage was done then */
       if (players[torp->bt_owner].p_hostile & j->p_team)	/* start war if */
-	players[torp->bt_owner].p_swar |= j->p_team;	/* necessary */
+				players[torp->bt_owner].p_swar |= j->p_team;	/* necessary */
       inflict_damage(&players[torp->bt_owner], &players[torp->bt_whodet],
-		     j, damage, why);
+										 j, damage, why);
     }
   }
 }
@@ -159,25 +159,25 @@
   {				/* all players */
     switch (j->ph_status)
     {				/* check player's phaser status */
-     case PHFREE:		/* if not beging fired */
-      continue;			/* then continue */
-     case PHMISS:		/* if it missed */
-     case PHHIT2:		/* or ????? */
-      if (j->ph_fuse-- == 1)	/* dec count of phaser */
-	j->ph_status = PHFREE;	/* free it up if count done */
-      break;
-     case PHHIT:		/* if it hit someone then */
-      if (j->ph_fuse-- == players[i].p_ship.s_phaser.fuse)
-      {
-	victim = &players[j->ph_target];	/* get the victim */
-	if (players[i].p_hostile & victim->p_team)	/* start war if */
-	  players[i].p_swar |= victim->p_team;	/* necessary */
-	if (victim->p_status == PALIVE)	/* only damage if alive */
-	  inflict_damage(&players[i], 0, victim, j->ph_damage, KPHASER);
-      }				/* end of if phaser hit someone */
-      if (j->ph_fuse == 0)
-	j->ph_status = PHFREE;
-      break;
+			case PHFREE:		/* if not beging fired */
+				continue;			/* then continue */
+			case PHMISS:		/* if it missed */
+			case PHHIT2:		/* or ????? */
+				if (j->ph_fuse-- == 1)	/* dec count of phaser */
+					j->ph_status = PHFREE;	/* free it up if count done */
+				break;
+			case PHHIT:		/* if it hit someone then */
+				if (j->ph_fuse-- == players[i].p_ship.s_phaser.fuse)
+				{
+					victim = &players[j->ph_target];	/* get the victim */
+					if (players[i].p_hostile & victim->p_team)	/* start war if */
+						players[i].p_swar |= victim->p_team;	/* necessary */
+					if (victim->p_status == PALIVE)	/* only damage if alive */
+						inflict_damage(&players[i], 0, victim, j->ph_damage, KPHASER);
+				}				/* end of if phaser hit someone */
+				if (j->ph_fuse == 0)
+					j->ph_status = PHFREE;
+				break;
     }				/* end of switch */
   }				/* end of for loop through players */
 }
@@ -191,8 +191,8 @@
 int
 weap_near_object(torp, type, dist)
   struct basetorp *torp;
-  int type;
-  int dist;
+int type;
+int dist;
 {
   register struct planet *pl;	/* to point to the planets */
   int dx, dy, i;
@@ -215,7 +215,7 @@
 int
 near_player(torp, dist)
   struct basetorp *torp;	/* the torp to check for */
-  int dist;
+int dist;
 {
   register int i;		/* looping var */
   int dx, dy;			/* to calc torp-player distance */
@@ -324,7 +324,7 @@
 						 & T_NEBULA) &&	neb_effect[SS_PHOTON])
 					if(TORP_NEB_EFF > (lrand48() % 100)) /* Is torp affected? */
 						turn = (lrand48() % 2); /* Yes */
-				
+						
 					if (turn < 0)
 					{			/* we will go left */
 						heading = ((int) j->t_dir) - j->t_turns;	/* turn left */
@@ -361,8 +361,7 @@
 					break;			/* no more torp processing */
 				}
 				if ((sun_effect[SS_PHOTON] && weap_near_object(&j->t_base, PLSTAR, ORBDIST))
-						||
-						(wh_effect[SS_PHOTON] && weap_near_object(&j->t_base, PLWHOLE, ORBDIST)))
+						||(wh_effect[SS_PHOTON] && weap_near_object(&j->t_base, PLWHOLE, ORBDIST)))
 				{
 					/* did it hit a star or wormhole? */
 					j->t_whodet = j->t_owner;