# 2.11BSD#431 - /usr/src/games/trek/initquad.c

##### Functions

    initquad          X
    sector            X

       1: /*
       2:  * Copyright (c) 1980 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  */
       6:
       7: #ifndef lint
       8: static char sccsid[] = "@(#)initquad.c	5.1 (Berkeley) 5/30/85";
       9: #endif not lint
      10:
      11: # include   "trek.h"
      12:
      13: /*
      14: **  Paramize Quadrant Upon Entering
      15: **
      16: **	A quadrant is initialized from the information held in the
      17: **	Quad matrix.  Basically, everything is just initialized
      18: **	randomly, except for the starship, which goes into a fixed
      19: **	sector.
      20: **
      21: **	If there are Klingons in the quadrant, the captain is informed
      22: **	that the condition is RED, and he is given a chance to put
      23: **	his shields up if the computer is working.
      24: **
      25: **	The flag `f' is set to disable the check for condition red.
      26: **	This mode is used in situations where you know you are going
      27: **	to be docked, i.e., abandon() and help().
      28: */
      29:
      30: initquad(f)
      31: int f;
      32: {
      33:     register int        i, j;
      34:     int         rx, ry;
      35:     int         nbases, nstars;
      36:     register struct quad    *q;
      37:     int         nholes;
      38:
      39:     q = &Quad[Ship.quadx][Ship.quady];
      40:
      41:     /* ignored supernova'ed quadrants (this is checked again later anyway */
      42:     if (q->stars < 0)
      43:         return;
      44:     Etc.nkling = q->klings;
      45:     nbases = q->bases;
      46:     nstars = q->stars;
      47:     nholes = q->holes;
      48:
      49:     /* have we blundered into a battle zone w/ shields down? */
      50:     if (Etc.nkling > 0 && !f)
      51:     {
      52:         printf("Condition RED\n");
      53:         Ship.cond = RED;
      54:         if (!damaged(COMPUTER))
      55:             shield(1);
      56:     }
      57:
      58:     /* clear out the quadrant */
      59:     for (i = 0; i < NSECTS; i++)
      60:         for (j = 0; j < NSECTS; j++)
      61:             Sect[i][j] = EMPTY;
      62:
      63:     /* initialize Enterprise */
      64:     Sect[Ship.sectx][Ship.secty] = Ship.ship;
      65:
      66:     /* initialize Klingons */
      67:     for (i = 0; i < Etc.nkling; i++)
      68:     {
      69:         sector(&rx, &ry);
      70:         Sect[rx][ry] = KLINGON;
      71:         Etc.klingon[i].x = rx;
      72:         Etc.klingon[i].y = ry;
      73:         Etc.klingon[i].power = Param.klingpwr;
      74:         Etc.klingon[i].srndreq = 0;
      75:     }
      76:     compkldist(1);
      77:
      78:     /* initialize star base */
      79:     if (nbases > 0)
      80:     {
      81:         sector(&rx, &ry);
      82:         Sect[rx][ry] = BASE;
      83:         Etc.starbase.x = rx;
      84:         Etc.starbase.y = ry;
      85:     }
      86:
      87:     /* initialize inhabited starsystem */
      88:     if (q->qsystemname != 0)
      89:     {
      90:         sector(&rx, &ry);
      91:         Sect[rx][ry] = INHABIT;
      92:         nstars -= 1;
      93:     }
      94:
      95:     /* initialize black holes */
      96:     for (i = 0; i < nholes; i++)
      97:     {
      98:         sector(&rx, &ry);
      99:         Sect[rx][ry] = HOLE;
     100:     }
     101:
     102:     /* initialize stars */
     103:     for (i = 0; i < nstars; i++)
     104:     {
     105:         sector(&rx, &ry);
     106:         Sect[rx][ry] = STAR;
     107:     }
     108:     Move.newquad = 1;
     109: }
     110:
     111:
     112: sector(x, y)
     113: int *x, *y;
     114: {
     115:     register int        i, j;
     116:
     117:     do
     118:     {
     119:         i = ranf(NSECTS);
     120:         j = ranf(NSECTS);
     121:     } while (Sect[i][j] != EMPTY);
     122:     *x = i;
     123:     *y = j;
     124:     return;
     125: }

#### Defined functions

initquad defined in line 30; used 6 times

- in /usr/src/games/trek/abandon.c line 111
- in /usr/src/games/trek/events.c line 145
- in /usr/src/games/trek/help.c line 80
- in /usr/src/games/trek/move.c line 160, 181
- in /usr/src/games/trek/setup.c line 273

sector defined in line 112; used 6 times

- in line 69, 81, 90, 98, 105
- in /usr/src/games/trek/events.c line 343

#### Defined variables

sccsid defined in line 8; never used

Last modified: 1985-05-30 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 533 |