|
|
1.1 ! root 1: # include "trek.h" ! 2: ! 3: /** ! 4: ** shield and cloaking device control ! 5: **/ ! 6: ! 7: CVNTAB Udtab[] ! 8: { ! 9: "d", "own", ! 10: "u", "p", ! 11: 0 ! 12: }; ! 13: ! 14: shield() ! 15: { ! 16: protect(SHIELD); ! 17: } ! 18: ! 19: cloak() ! 20: { ! 21: protect(CLOAK); ! 22: } ! 23: ! 24: protect(sw) ! 25: int sw; ! 26: { ! 27: register int i; ! 28: char *device; ! 29: int ind; ! 30: char *stat; ! 31: ! 32: if (sw == CLOAK) ! 33: { ! 34: /* cloaking device */ ! 35: if (Status.ship == QUEENE) { ! 36: error("Ye Faire Queene does not have the cloaking device.\n"); ! 37: return; ! 38: } ! 39: device = "Cloaking device"; ! 40: ind = CLOAK; ! 41: stat = &Status.cloaked; ! 42: } ! 43: else ! 44: { ! 45: /* shields */ ! 46: device = "Shields"; ! 47: ind = SHIELD; ! 48: stat = &Status.shldup; ! 49: } ! 50: if (Damage[ind]) ! 51: { ! 52: error(device, " inoperable\n"); ! 53: return; ! 54: } ! 55: if(sw) { ! 56: if(lineended()) { ! 57: printf("%s %s; ", device, ! 58: (*stat?"up":"down") ! 59: ); ! 60: } ! 61: if((i=getcodpar("Up or down", Udtab))<0) return; ! 62: } else { ! 63: i = !*stat; ! 64: } ! 65: if(*stat==i) ! 66: return; ! 67: if (i) ! 68: if(sw!=CLOAK) ! 69: Status.energy =- Param.shupengy; ! 70: else ! 71: Status.cloakdate = Status.date; ! 72: Move.free = 0; ! 73: if(sw!=CLOAK) ! 74: Move.shldchg = 1; ! 75: *stat = i; ! 76: return; ! 77: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.