|
|
1.1 ! root 1: /* ahdr.h: definitions for atc game */ ! 2: ! 3: /* #ifdef vax ! 4: #define AIRFILE "/r/jim/atc/airspaces" ! 5: #define STATSFILE "/r/jim/atc/stats" ! 6: #else ! 7: #define AIRFILE "/g/jim/atc.export/airspaces" ! 8: #define STATSFILE "/g/jim/atc.export/stats" ! 9: #endif */ ! 10: ! 11: #define AIRFILE "/usr/games/lib/atc/airspaces" ! 12: #define STATSFILE "/usr/games/lib/atc/stats" ! 13: ! 14: ! 15: #define LEFT 0 /* left is left margin */ ! 16: #define BOTTOM 39 /* bottom addressable part of display */ ! 17: ! 18: #define VERBOSE 1 ! 19: #define TERSE 0 ! 20: ! 21: #define YES 1 ! 22: #define NO 0 ! 23: ! 24: #define FF 014 ! 25: #define SI 017 ! 26: #define FS 034 ! 27: #define US 037 ! 28: #define BELL 007 ! 29: #ifdef ANNARBOR ! 30: #define BS 036 ! 31: #else ! 32: #define BS '\b' ! 33: #endif ! 34: ! 35: #define BEEP putchar(BELL) ! 36: ! 37: #define RETURN '\r' ! 38: #define MIPAGE 021 ! 39: #define HOME 013 ! 40: #define PLPAGE 031 ! 41: #define MISRCH 005 ! 42: #define UPARROW 016 ! 43: #define PLSRCH 022 ! 44: #define LEFTARROW 010 ! 45: #define DOWNARROW 012 ! 46: #define RIGHTARROW 037 ! 47: #define INSMODE 017 ! 48: ! 49: #define TIMEOUT 3 /* he loses command if he waits >3" between chars */ ! 50: ! 51: #define PAUSE putchar(0); putchar(0); putchar(0) ! 52: ! 53: #define MINWIDTH 10 ! 54: #define MAXWIDTH 30 ! 55: #define MINHEIGHT 10 ! 56: #define MAXHEIGHT 40 ! 57: ! 58: #define MAXPATHS 200 /* max number of paths for flow control */ ! 59: ! 60: #define EMAX 20 /* max number of entries into the screen */ ! 61: #define AMAX 5 ! 62: #define NMAX 5 ! 63: ! 64: #define CMDLEN 10 /* max length command: e.g. ATNW<0> */ ! 65: #define CDLNAME 10 /* max length of name of clearance directive list */ ! 66: #define LOCLEN 30 /* max length of location identifier */ ! 67: ! 68: #define NALT 12 /* max number altitudes being stored in f_dist */ ! 69: ! 70: struct flow /* from and to are stored as the die roll needed in flightplan */ ! 71: { int f_from; /* origin */ ! 72: int f_fair; /* 1 if airport */ ! 73: int f_to; /* destination */ ! 74: int f_tair; /* 1 if airport */ ! 75: int f_freq; /* relative frequency */ ! 76: int f_dist[NALT]; /* least dist to travel if it comes in this high */ ! 77: int f_cmds; /* min # of commands to land it */ ! 78: }; ! 79: ! 80: struct pstruct /* structure for interesting points on the screen */ ! 81: { int p_x; /* coordinates of the entry point */ ! 82: int p_y; ! 83: int p_dx; /* x increment */ ! 84: int p_dy; ! 85: int p_inprop; /* proportion of entries from here */ ! 86: int p_outprop; /* proportion of exits to here */ ! 87: char p_sym; /* symbol on screen */ ! 88: }; ! 89: ! 90: struct cdl /* clearance directive list (plan) */ ! 91: { struct cdl *c_next; ! 92: struct list *c_list; ! 93: char c_name[CDLNAME]; ! 94: } cdltop; ! 95: ! 96: struct list /* list of clearances */ ! 97: { struct list *l_next; ! 98: int l_x,l_y; /* place where this takes effect */ ! 99: char l_loc[LOCLEN]; /* verbatim location description */ ! 100: char l_cmd[CMDLEN]; /* command to execute here */ ! 101: }; ! 102: ! 103: #define PMAX 26 /* for now we'll have exactly 26 planes as in apple game */ ! 104: ! 105: struct astruct /* airplane structure */ ! 106: { int a_stime; /* starting time (after start) */ ! 107: int a_active; /* 1 if flying; 2 if on standby; 0 if off or waiting*/ ! 108: int a_start; /* starting location */ ! 109: int a_sair; /* 1 if starting from airport; else 0 */ ! 110: int a_dest; /* leaving or landing at ... */ ! 111: int a_dair; /* 1 if landing at airport; else 0 */ ! 112: int a_x; /* location */ ! 113: int a_y; ! 114: int a_z; /* altitude */ ! 115: int a_dx; /* direction: -1,0,or 1 */ ! 116: int a_dy; ! 117: int a_lastz; /* climb or descent - used for conflicts */ ! 118: int a_nextz; /* designated altitude */ ! 119: char a_turn; /* turning 'L' or 'R' (0 if no turn) */ ! 120: int a_dxnew; /* new course - x increment */ ! 121: int a_dynew; ! 122: int a_type; /* 0 for prop, 1 for jet */ ! 123: int a_fuel; ! 124: int a_hold; /* 1 if scheduled to hold at navaid, 2 if holding */ ! 125: char a_clear; /* cleared for approach to this location */ ! 126: char a_id; ! 127: struct list *a_plan; /* "clearance directive list" */ ! 128: int a_load; /* sum of active planes at each tick */ ! 129: int a_ticks; /* number of ticks it's on the screen */ ! 130: int a_planned; /* sum of planned planes at each tick */ ! 131: int a_dist; /* distance this plane travelled */ ! 132: int a_opt; /* best distance it could have travelled */ ! 133: int a_cmds; /* min # of commands for this plane's route */ ! 134: int a_prev; /* number of ticks it was in the preview area */ ! 135: int a_aprev; /* number of planes active while in preview */ ! 136: int a_pprev; /* number of planes planned while in preview */ ! 137: int a_pplanned; /* whether this was planned or not while in preview */ ! 138: }; ! 139: ! 140: #define PROP 0 ! 141: #define JET 1 ! 142: ! 143: #define PROPFUEL 21*2 ! 144: #define JETFUEL 15*4 ! 145: ! 146: /* reasons for dying */ ! 147: #define FUEL 0 ! 148: #define OUTOFTIME 1 ! 149: #define CRASH 2 ! 150: #define BOUND 3 ! 151: #define SYSTEM 6 ! 152: #define GOAROUND 7 ! 153: ! 154: #define UPDATE 15 /* updates happen every 15 seconds */ ! 155: ! 156: #define INACTIVE 0 /* possible airplane statuses (plane[i].a_active) */ ! 157: #define ACTIVE 1 ! 158: #define WAITING 2 /* waiting for takeoff */ ! 159: #define DONE 3 ! 160: #define APPROACHING 4 /* from another sector */ ! 161: #define LANDING 5 ! 162: ! 163: #define FPTHRESH 60 /* amount of time info on incoming planes is up */ ! 164: #define NEARLY 2 /* number of planes to get in 1st FPTHRESH seconds */ ! 165: ! 166: #define FUDGE 20 /* pretend interval is this much longer to make it */ ! 167: /* more likely that there will be planes initially */ ! 168: #define FIRST_TIME 30 /* first time that planes can come on */ ! 169: #define SAFETY 120 /* if incoming planes are this close, bump alt */ ! 170: ! 171: extern char *index(); ! 172: ! 173: /*#define OFFSET 0 /* 0-origin */ ! 174: /*#define OFFSET -1 /* 1-origin */ ! 175: #define OFFSET -2 /* 2-origin */ ! 176: ! 177:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.