|
|
1.1 ! root 1: # include "trek.h" ! 2: ! 3: /** ! 4: ** instruction read and main play loop ! 5: **/ ! 6: ! 7: CVNTAB Comtab[] ! 8: { ! 9: "!", "shell", ! 10: "m", "ove", ! 11: "ram", "", ! 12: "q", "uery", ! 13: "st", "atus", ! 14: "sh", "ield", ! 15: "s", "rscan", ! 16: "l", "rscan", ! 17: "da", "mages", ! 18: "p", "hasers", ! 19: "quit", "", ! 20: "t", "orpedo", ! 21: "cl", "oak", ! 22: "c", "omputer", ! 23: "w", "arp", ! 24: "r", "est", ! 25: "do", "ck", ! 26: "i", "mpulse", ! 27: "u", "ndock", ! 28: "help", "", ! 29: "v", "isual", ! 30: "destruct", "", ! 31: "abandon", "", ! 32: "dump", "", ! 33: "events", "", ! 34: 0 ! 35: }; ! 36: ! 37: extern int shell(); ! 38: extern int move(); ! 39: extern int ram(); ! 40: extern int info(); ! 41: extern int status(); ! 42: extern int shield(); ! 43: extern int srscan(); ! 44: extern int lrscan(); ! 45: extern int dcrept(); ! 46: extern int phaser(); ! 47: extern int reset(); ! 48: extern int torped(); ! 49: extern int cloak(); ! 50: extern int computer(); ! 51: extern int setwarp(); ! 52: extern int rest(); ! 53: extern int dock(); ! 54: extern int impulse(); ! 55: extern int undock(); ! 56: extern int help(); ! 57: extern int visual(); ! 58: extern int destruct(); ! 59: extern int abandon(); ! 60: extern int dumpgame(); ! 61: extern int eventpr(); ! 62: ! 63: int (*comfn[])() ! 64: { ! 65: &shell, ! 66: &move, ! 67: &ram, ! 68: &info, ! 69: &status, ! 70: &shield, ! 71: &srscan, ! 72: &lrscan, ! 73: &dcrept, ! 74: &phaser, ! 75: &reset, ! 76: &torped, ! 77: &cloak, ! 78: &computer, ! 79: &setwarp, ! 80: &rest, ! 81: &dock, ! 82: &impulse, ! 83: &undock, ! 84: &help, ! 85: &visual, ! 86: &destruct, ! 87: &abandon, ! 88: &dumpgame, ! 89: &eventpr ! 90: }; ! 91: ! 92: reset() ! 93: { ! 94: longjmp(errjmp); ! 95: } ! 96: ! 97: play() ! 98: { ! 99: register int r; ! 100: ! 101: while (1) ! 102: { ! 103: Move.free = 1; ! 104: Move.delta = 0.0; ! 105: Move.shldchg = 0; ! 106: Move.newquad = 0; ! 107: Move.resting = 0; ! 108: if(chkbad() < 0) ! 109: return(0); ! 110: if((r=getcodpar("Command", Comtab))<0) ! 111: continue; ! 112: (*comfn[r])(); ! 113: if(chkbad()) ! 114: continue; ! 115: events(); ! 116: attack(0); ! 117: checkcond(); ! 118: } ! 119: } ! 120: ! 121: char eof; ! 122: chkbad() ! 123: { ! 124: if(eof) ! 125: return(-1); ! 126: if(mkfault) { ! 127: flushin(); ! 128: mkfault=0; ! 129: printf("@\n"); ! 130: return(1); ! 131: } ! 132: return(0); ! 133: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.