lrscan.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /* $NetBSD: lrscan.c,v 1.6 2003/08/07 09:37:52 agc Exp $ */
  2. /*
  3. * Copyright (c) 1980, 1993
  4. * The Regents of the University of California. All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted provided that the following conditions
  8. * are met:
  9. * 1. Redistributions of source code must retain the above copyright
  10. * notice, this list of conditions and the following disclaimer.
  11. * 2. Redistributions in binary form must reproduce the above copyright
  12. * notice, this list of conditions and the following disclaimer in the
  13. * documentation and/or other materials provided with the distribution.
  14. * 3. Neither the name of the University nor the names of its contributors
  15. * may be used to endorse or promote products derived from this software
  16. * without specific prior written permission.
  17. *
  18. * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  19. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  20. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  21. * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  22. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  23. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  24. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  25. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  26. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  27. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  28. * SUCH DAMAGE.
  29. */
  30. #include <sys/cdefs.h>
  31. #ifndef lint
  32. #if 0
  33. static char sccsid[] = "@(#)lrscan.c 8.1 (Berkeley) 5/31/93";
  34. #else
  35. __RCSID("$NetBSD: lrscan.c,v 1.6 2003/08/07 09:37:52 agc Exp $");
  36. #endif
  37. #endif /* not lint */
  38. #include <stdio.h>
  39. #include "trek.h"
  40. /*
  41. ** LONG RANGE OF SCANNERS
  42. **
  43. ** A summary of the quadrants that surround you is printed. The
  44. ** hundreds digit is the number of Klingons in the quadrant,
  45. ** the tens digit is the number of starbases, and the units digit
  46. ** is the number of stars. If the printout is "///" it means
  47. ** that that quadrant is rendered uninhabitable by a supernova.
  48. ** It also updates the "scanned" field of the quadrants it scans,
  49. ** for future use by the "chart" option of the computer.
  50. */
  51. /*ARGSUSED*/
  52. void
  53. lrscan(v)
  54. int v __attribute__((__unused__));
  55. {
  56. int i, j;
  57. struct quad *q;
  58. if (check_out(LRSCAN))
  59. {
  60. return;
  61. }
  62. printf("Long range scan for quadrant %d,%d\n\n", Ship.quadx, Ship.quady);
  63. /* print the header on top */
  64. for (j = Ship.quady - 1; j <= Ship.quady + 1; j++)
  65. {
  66. if (j < 0 || j >= NQUADS)
  67. printf(" ");
  68. else
  69. printf(" %1d", j);
  70. }
  71. /* scan the quadrants */
  72. for (i = Ship.quadx - 1; i <= Ship.quadx + 1; i++)
  73. {
  74. printf("\n -------------------\n");
  75. if (i < 0 || i >= NQUADS)
  76. {
  77. /* negative energy barrier */
  78. printf(" ! * ! * ! * !");
  79. continue;
  80. }
  81. /* print the left hand margin */
  82. printf("%1d !", i);
  83. for (j = Ship.quady - 1; j <= Ship.quady + 1; j++)
  84. {
  85. if (j < 0 || j >= NQUADS)
  86. {
  87. /* negative energy barrier again */
  88. printf(" * !");
  89. continue;
  90. }
  91. q = &Quad[i][j];
  92. if (q->stars < 0)
  93. {
  94. /* supernova */
  95. printf(" /// !");
  96. q->scanned = 1000;
  97. continue;
  98. }
  99. q->scanned = q->klings * 100 + q->bases * 10 + q->stars;
  100. printf(" %3d !", q->scanned);
  101. }
  102. }
  103. printf("\n -------------------\n");
  104. return;
  105. }