projects
/
super-star-trek.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
The beginnings of the website.
[super-star-trek.git]
/
sst.c
diff --git
a/sst.c
b/sst.c
index 55066eb7fdeaa9b487647493486b2c434834a739..b06a82fade956d28bd2b9b4f6b32a250d39db369 100644
(file)
--- a/
sst.c
+++ b/
sst.c
@@
-1,6
+1,7
@@
#define INCLUDED // Define externs here
\r
#include "sst.h"
\r
#include <ctype.h>
\r
#define INCLUDED // Define externs here
\r
#include "sst.h"
\r
#include <ctype.h>
\r
+#include <stdarg.h>
\r
#ifdef MSDOS
\r
#include <dos.h>
\r
#endif
\r
#ifdef MSDOS
\r
#include <dos.h>
\r
#endif
\r
@@
-102,7
+103,7
@@
static void listCommands(int x) {
\r
static void helpme(void) {
\r
int i, j;
\r
\r
static void helpme(void) {
\r
int i, j;
\r
- char cmdbuf[32];
\r
+ char cmdbuf[32]
, *cp
;
\r
char linebuf[132];
\r
FILE *fp;
\r
/* Give help on commands */
\r
char linebuf[132];
\r
FILE *fp;
\r
/* Give help on commands */
\r
@@
-129,9
+130,9
@@
static void helpme(void) {
strcpy(cmdbuf, " ABBREV");
\r
}
\r
else {
\r
strcpy(cmdbuf, " ABBREV");
\r
}
\r
else {
\r
- strcpy(cmdbuf, " Mnemonic: ");
\r
-
j = 0
;
\r
-
while ((cmdbuf[j+13] = toupper(commands[i][j])) != 0) j++
;
\r
+ for (j = 0; commands[i][j]; j++)
\r
+
cmdbuf[j] = toupper(commands[i][j])
;
\r
+
cmdbuf[j] = '\0'
;
\r
}
\r
fp = fopen("sst.doc", "r");
\r
if (fp == NULL) {
\r
}
\r
fp = fopen("sst.doc", "r");
\r
if (fp == NULL) {
\r
@@
-140,26
+141,31
@@
static void helpme(void) {
prout(" current directory.\"");
\r
return;
\r
}
\r
prout(" current directory.\"");
\r
return;
\r
}
\r
- i = strlen(cmdbuf);
\r
- do {
\r
- if (fgets(linebuf, 132, fp) == NULL) {
\r
+ for (;;) {
\r
+ if (fgets(linebuf, sizeof(linebuf), fp) == NULL) {
\r
prout("Spock- \"Captain, there is no information on that command.\"");
\r
fclose(fp);
\r
return;
\r
}
\r
prout("Spock- \"Captain, there is no information on that command.\"");
\r
fclose(fp);
\r
return;
\r
}
\r
- } while (strncmp(linebuf, cmdbuf, i) != 0);
\r
+ if (linebuf[0] == '%' && linebuf[1] == '%'&& linebuf[2] == ' ') {
\r
+ for (cp = linebuf+3; isspace(*cp); cp++)
\r
+ continue;
\r
+ linebuf[strlen(linebuf)-1] = '\0';
\r
+ if (strcmp(cp, cmdbuf) == 0)
\r
+ break;
\r
+ }
\r
+ }
\r
\r
skip(1);
\r
prout("Spock- \"Captain, I've found the following information:\"");
\r
skip(1);
\r
\r
\r
skip(1);
\r
prout("Spock- \"Captain, I've found the following information:\"");
\r
skip(1);
\r
\r
- do {
\r
- if (linebuf[0]!=12) { // ignore page break lines
\r
- linebuf[strlen(linebuf)-1] = '\0'; // No \n at end
\r
- prout(linebuf);
\r
- }
\r
- fgets(linebuf,132,fp);
\r
- } while (strstr(linebuf, "******")==NULL);
\r
+ while (fgets(linebuf, sizeof(linebuf),fp)) {
\r
+ if (strstr(linebuf, "******"))
\r
+ break;
\r
+ linebuf[strlen(linebuf)-1] = '\0'; // No \n at end
\r
+ prout(linebuf);
\r
+ }
\r
fclose(fp);
\r
}
\r
\r
fclose(fp);
\r
}
\r
\r
@@
-323,7
+329,7
@@
static void makemoves(void) {
events();
\r
if (alldone) break; // Events did us in
\r
}
\r
events();
\r
if (alldone) break; // Events did us in
\r
}
\r
- if (state.galaxy[quadx][quady] == 1000) { // Galaxy went Nova!
\r
+ if (
game.
state.galaxy[quadx][quady] == 1000) { // Galaxy went Nova!
\r
atover(0);
\r
continue;
\r
}
\r
atover(0);
\r
continue;
\r
}
\r
@@
-331,7
+337,7
@@
static void makemoves(void) {
if (hitme && justin==0) {
\r
attack(2);
\r
if (alldone) break;
\r
if (hitme && justin==0) {
\r
attack(2);
\r
if (alldone) break;
\r
- if (
state.galaxy[quadx][quady] == 1000) {
// went NOVA!
\r
+ if (
game.state.galaxy[quadx][quady] == 1000) {
// went NOVA!
\r
atover(0);
\r
hitme = TRUE;
\r
continue;
\r
atover(0);
\r
hitme = TRUE;
\r
continue;
\r
@@
-373,13
+379,13
@@
int main(int argc, char **argv) {
skip(1);
\r
\r
if (tourn && alldone) {
\r
skip(1);
\r
\r
if (tourn && alldone) {
\r
- pr
intf
("Do you want your score recorded?");
\r
+ pr
outn
("Do you want your score recorded?");
\r
if (ja()) {
\r
chew2();
\r
freeze(FALSE);
\r
}
\r
}
\r
if (ja()) {
\r
chew2();
\r
freeze(FALSE);
\r
}
\r
}
\r
- pr
intf
("Do you want to play again?");
\r
+ pr
outn
("Do you want to play again?");
\r
if (!ja()) break;
\r
}
\r
skip(1);
\r
if (!ja()) break;
\r
}
\r
skip(1);
\r
@@
-407,20
+413,20
@@
void cramen(int i) {
proutn(s);
\r
}
\r
\r
proutn(s);
\r
}
\r
\r
-
void cramlc(int
key, int x, int y) {
\r
-
if (key == 1) proutn(" Quadrant")
;
\r
-
else if (key == 2) proutn(" Sector")
;
\r
-
proutn("
");
\r
-
crami(x, 1
);
\r
-
proutn(" - "
);
\r
-
crami(y, 1)
;
\r
+
char *cramlc(enum loctype
key, int x, int y) {
\r
+
static char buf[32]
;
\r
+
buf[0] = '\0'
;
\r
+
if (key == quadrant) strcpy(buf, "Quadrant
");
\r
+
else if (key == sector) strcpy(buf, "Sector "
);
\r
+
sprintf(buf+strlen(buf), "%d-%d", x, y
);
\r
+
return buf
;
\r
}
\r
\r
void crmena(int i, int enemy, int key, int x, int y) {
\r
if (i == 1) proutn("***");
\r
cramen(enemy);
\r
proutn(" at");
\r
}
\r
\r
void crmena(int i, int enemy, int key, int x, int y) {
\r
if (i == 1) proutn("***");
\r
cramen(enemy);
\r
proutn(" at");
\r
-
cramlc(key, x, y
);
\r
+
proutn(cramlc(key, x, y)
);
\r
}
\r
\r
void crmshp(void) {
\r
}
\r
\r
void crmshp(void) {
\r
@@
-530,18
+536,6
@@
int ja(void) {
}
\r
}
\r
\r
}
\r
}
\r
\r
-void cramf(double x, int w, int d) {
\r
- char buf[64];
\r
- sprintf(buf, "%*.*f", w, d, x);
\r
- proutn(buf);
\r
-}
\r
-
\r
-void crami(int i, int w) {
\r
- char buf[16];
\r
- sprintf(buf, "%*d", w, i);
\r
- proutn(buf);
\r
-}
\r
-
\r
double square(double i) { return i*i; }
\r
\r
static void clearscreen(void) {
\r
double square(double i) { return i*i; }
\r
\r
static void clearscreen(void) {
\r
@@
-591,22
+585,34
@@
void skip(int i) {
}
\r
\r
\r
}
\r
\r
\r
-void proutn(char *s) {
\r
- fputs(s, stdout);
\r
+void proutn(char *fmt, ...) {
\r
+ va_list ap;
\r
+ va_start(ap, fmt);
\r
+ vprintf(fmt, ap);
\r
+ va_end(ap);
\r
}
\r
\r
}
\r
\r
-void prout(char *s) {
\r
- proutn(s);
\r
- skip(1);
\r
+void prout(char *fmt, ...) {
\r
+ va_list ap;
\r
+ va_start(ap, fmt);
\r
+ vprintf(fmt, ap);
\r
+ va_end(ap);
\r
+ skip(1);
\r
}
\r
\r
}
\r
\r
-void prouts(char *
s
) {
\r
+void prouts(char *
fmt, ...
) {
\r
clock_t endTime;
\r
clock_t endTime;
\r
+ char *s, buf[BUFSIZ];
\r
/* print slowly! */
\r
/* print slowly! */
\r
- while (*s) {
\r
+ va_list ap;
\r
+ va_start(ap, fmt);
\r
+ vsprintf(buf, fmt, ap);
\r
+ va_end(ap);
\r
+ skip(1);
\r
+ for (s = buf; *s; s++) {
\r
endTime = clock() + CLOCKS_PER_SEC*0.05;
\r
while (clock() < endTime) ;
\r
endTime = clock() + CLOCKS_PER_SEC*0.05;
\r
while (clock() < endTime) ;
\r
- putchar(*s
++
);
\r
+ putchar(*s);
\r
fflush(stdout);
\r
}
\r
}
\r
fflush(stdout);
\r
}
\r
}
\r
@@
-637,7
+643,7
@@
void debugme(void) {
proutn("Reset damage? ");
\r
if (ja() != 0) {
\r
int i;
\r
proutn("Reset damage? ");
\r
if (ja() != 0) {
\r
int i;
\r
- for (i=0; i <=
ndevice
; i++) if (damage[i] > 0.0) damage[i] = 0.0;
\r
+ for (i=0; i <=
NDEVICES
; i++) if (damage[i] > 0.0) damage[i] = 0.0;
\r
stdamtim = 1e30;
\r
}
\r
proutn("Toggle idebug? ");
\r
stdamtim = 1e30;
\r
}
\r
proutn("Toggle idebug? ");
\r
@@
-649,7
+655,7
@@
void debugme(void) {
proutn("Cause selective damage? ");
\r
if (ja() != 0) {
\r
int i, key;
\r
proutn("Cause selective damage? ");
\r
if (ja() != 0) {
\r
int i, key;
\r
- for (i=1; i <=
ndevice
; i++) {
\r
+ for (i=1; i <=
NDEVICES
; i++) {
\r
proutn("Kill ");
\r
proutn(device[i]);
\r
proutn("? ");
\r
proutn("Kill ");
\r
proutn(device[i]);
\r
proutn("? ");
\r
@@
-657,7
+663,7
@@
void debugme(void) {
key = scan();
\r
if (key == IHALPHA && isit("y")) {
\r
damage[i] = 10.0;
\r
key = scan();
\r
if (key == IHALPHA && isit("y")) {
\r
damage[i] = 10.0;
\r
- if (i == DRADIO) stdamtim = state.date;
\r
+ if (i == DRADIO) stdamtim =
game.
state.date;
\r
}
\r
}
\r
}
\r
}
\r
}
\r
}
\r
@@
-676,12
+682,12
@@
void debugme(void) {
case FSCMOVE: proutn("SC Move "); break;
\r
case FSCDBAS: proutn("SC Base Destroy "); break;
\r
}
\r
case FSCMOVE: proutn("SC Move "); break;
\r
case FSCDBAS: proutn("SC Base Destroy "); break;
\r
}
\r
-
cramf(future[i]-state.date, 8, 2
);
\r
+
proutn("%.2f", future[i]-game.state.date
);
\r
chew();
\r
proutn(" ?");
\r
key = scan();
\r
if (key == IHREAL) {
\r
chew();
\r
proutn(" ?");
\r
key = scan();
\r
if (key == IHREAL) {
\r
- future[i] = state.date + aaitem;
\r
+ future[i] =
game.
state.date + aaitem;
\r
}
\r
}
\r
chew();
\r
}
\r
}
\r
chew();
\r