Lines Matching refs:pp
73 PLANE *pp, *p1, *p2;
87 for (pp = ground.head; pp != NULL; pp = pp->next) {
88 if (pp->new_altitude > 0) {
89 delete(&ground, pp);
90 append(&air, pp);
98 for (pp = air.head; pp != NULL; pp = pp->next) {
100 if (pp->plane_type == 0 && clck & 1)
103 pp->fuel--;
104 if (pp->fuel < 0)
105 loser(pp, "ran out of fuel.");
107 pp->altitude += SGN(pp->new_altitude - pp->altitude);
109 if (!pp->delayd) {
110 dir_diff = pp->new_dir - pp->dir;
114 if (pp->new_dir >= 0 && pp->new_dir < MAXDIR) {
124 pp->dir += dir_diff;
125 if (pp->dir >= MAXDIR)
126 pp->dir -= MAXDIR;
127 else if (pp->dir < 0)
128 pp->dir += MAXDIR;
130 pp->xpos += displacement[pp->dir].dx;
131 pp->ypos += displacement[pp->dir].dy;
133 if (pp->delayd && pp->xpos == sp->beacon[pp->delayd_no].x &&
134 pp->ypos == sp->beacon[pp->delayd_no].y) {
135 pp->delayd = false;
136 if (pp->status == S_UNMARKED)
137 pp->status = S_MARKED;
140 switch (pp->dest_type) {
142 if (pp->xpos == sp->airport[pp->dest_no].x &&
143 pp->ypos == sp->airport[pp->dest_no].y &&
144 pp->altitude == 0) {
145 if (pp->dir != sp->airport[pp->dest_no].dir)
146 loser(pp, "landed in the wrong direction.");
148 pp->status = S_GONE;
154 if (pp->xpos == sp->exit[pp->dest_no].x &&
155 pp->ypos == sp->exit[pp->dest_no].y) {
156 if (pp->altitude != 9)
157 loser(pp, "exited at the wrong altitude.");
159 pp->status = S_GONE;
165 loser(pp, "has a bizarre destination, get help!");
167 if (pp->altitude > 9)
169 loser(pp, "exceeded flight ceiling.");
170 if (pp->altitude <= 0) {
172 if (pp->xpos == sp->airport[i].x &&
173 pp->ypos == sp->airport[i].y) {
174 if (pp->dest_type == T_AIRPORT)
175 loser(pp,
178 loser(pp,
181 loser(pp, "crashed on the ground.");
183 if (pp->xpos < 1 || pp->xpos >= sp->width - 1 ||
184 pp->ypos < 1 || pp->ypos >= sp->height - 1) {
186 if (pp->xpos == sp->exit[i].x &&
187 pp->ypos == sp->exit[i].y) {
188 if (pp->dest_type == T_EXIT)
189 loser(pp,
192 loser(pp,
195 loser(pp, "illegally left the flight arena.");
202 for (pp = air.head; pp != NULL; pp = p2) {
203 p2 = pp->next;
204 if (pp->status == S_GONE) {
206 delete(&air, pp);
262 command(const PLANE *pp)
270 (void)snprintf(bp, bpsize, "%c%d%c%c%u: ", name(pp), pp->altitude,
271 (pp->fuel < LOWFUEL) ? '*' : ' ',
272 (pp->dest_type == T_AIRPORT) ? 'A' : 'E', pp->dest_no);
276 if (pp->altitude == 0)
277 (void)snprintf(bp, bpsize, "Holding @ A%u", pp->orig_no);
278 else if (pp->new_dir >= MAXDIR || pp->new_dir < 0)
280 else if (pp->new_dir != pp->dir)
281 (void)snprintf(bp, bpsize, "%d", dir_deg(pp->new_dir));
285 if (pp->delayd)
286 (void)snprintf(bp, bpsize, " @ B%u", pp->delayd_no);
291 (pp->status == S_UNMARKED || pp->status == S_IGNORED))
320 PLANE *pp;
328 for (pp = air.head; pp != NULL; pp = pp->next)
329 if (pp->plane_no == last_plane) {
334 for (pp = ground.head; pp != NULL; pp = pp->next)
335 if (pp->plane_no == last_plane) {
348 PLANE p, *pp, *p1;
406 pp = newplane();
407 if (pp == NULL)
409 (void)memcpy(pp, &p, sizeof (p));
411 if (pp->orig_type == T_AIRPORT)
412 append(&ground, pp);
414 append(&air, pp);
420 PLANE *pp;
422 for (pp = air.head; pp != NULL; pp = pp->next)
423 if (pp->plane_no == n)
424 return (pp);
425 for (pp = ground.head; pp != NULL; pp = pp->next)
426 if (pp->plane_no == n)
427 return (pp);