Lines Matching refs:pp
46 drawmaze(PLAYER *pp)
53 clrscr(pp);
54 outstr(pp, pp->p_maze[0], WIDTH);
56 endp = &pp->p_maze[y][WIDTH];
57 for (x = 0, sp = pp->p_maze[y]; sp < endp; x++, sp++)
59 cgoto(pp, y, x);
60 if (pp->p_x == x && pp->p_y == y)
61 outch(pp, translate(*sp));
63 outch(pp, player_sym(pp, y, x));
65 outch(pp, *sp);
68 cgoto(pp, HEIGHT - 1, 0);
69 outstr(pp, pp->p_maze[HEIGHT - 1], WIDTH);
70 drawstatus(pp);
78 drawstatus(PLAYER *pp)
83 cgoto(pp, STAT_AMMO_ROW, STAT_LABEL_COL);
84 outstr(pp, "Ammo:", 5);
85 (void) snprintf(Buf, sizeof(Buf), "%3d", pp->p_ammo);
86 cgoto(pp, STAT_AMMO_ROW, STAT_VALUE_COL);
87 outstr(pp, Buf, 3);
89 cgoto(pp, STAT_GUN_ROW, STAT_LABEL_COL);
90 outstr(pp, "Gun:", 4);
91 cgoto(pp, STAT_GUN_ROW, STAT_VALUE_COL);
92 outstr(pp, (pp->p_ncshot < MAXNCSHOT) ? " ok" : " ", 3);
94 cgoto(pp, STAT_DAM_ROW, STAT_LABEL_COL);
95 outstr(pp, "Damage:", 7);
96 (void) snprintf(Buf, sizeof(Buf), "%2d/%2d", pp->p_damage,
97 pp->p_damcap);
98 cgoto(pp, STAT_DAM_ROW, STAT_VALUE_COL);
99 outstr(pp, Buf, 5);
101 cgoto(pp, STAT_KILL_ROW, STAT_LABEL_COL);
102 outstr(pp, "Kills:", 6);
103 (void) snprintf(Buf, sizeof(Buf), "%3d", (pp->p_damcap - MAXDAM) / 2);
104 cgoto(pp, STAT_KILL_ROW, STAT_VALUE_COL);
105 outstr(pp, Buf, 3);
107 cgoto(pp, STAT_PLAY_ROW, STAT_LABEL_COL);
108 outstr(pp, "Player:", 7);
114 cgoto(pp, i++, STAT_NAME_COL);
115 outstr(pp, Buf, STAT_NAME_LEN);
119 cgoto(pp, STAT_MON_ROW, STAT_LABEL_COL);
120 outstr(pp, "Monitor:", 8);
124 cgoto(pp, i++, STAT_NAME_COL);
125 outstr(pp, Buf, STAT_NAME_LEN);
131 look(PLAYER *pp)
135 x = pp->p_x;
136 y = pp->p_y;
138 check(pp, y - 1, x - 1);
139 check(pp, y - 1, x );
140 check(pp, y - 1, x + 1);
141 check(pp, y , x - 1);
142 check(pp, y , x );
143 check(pp, y , x + 1);
144 check(pp, y + 1, x - 1);
145 check(pp, y + 1, x );
146 check(pp, y + 1, x + 1);
148 switch (pp->p_face) {
150 see(pp, LEFTS);
151 see(pp, ABOVE);
152 see(pp, BELOW);
155 see(pp, RIGHT);
156 see(pp, ABOVE);
157 see(pp, BELOW);
160 see(pp, ABOVE);
161 see(pp, LEFTS);
162 see(pp, RIGHT);
165 see(pp, BELOW);
166 see(pp, LEFTS);
167 see(pp, RIGHT);
174 cgoto(pp, y, x);
178 see(PLAYER *pp, int face)
183 x = pp->p_x;
184 y = pp->p_y;
196 x = pp->p_x - 1;
199 check(pp, y, --x);
201 x = pp->p_x - 1;
204 check(pp, y, --x);
206 x = pp->p_x - 1;
209 check(pp, y, --x);
220 x = pp->p_x + 1;
223 check(pp, y, ++x);
225 x = pp->p_x + 1;
228 check(pp, y, ++x);
230 x = pp->p_x + 1;
233 check(pp, y, ++x);
242 check(pp, y, x - 1);
243 check(pp, y, x );
244 check(pp, y, x + 1);
254 check(pp, y, x - 1);
255 check(pp, y, x );
256 check(pp, y, x + 1);
263 check(PLAYER *pp, int y, int x)
271 if (ch != ((char *) pp->p_maze)[indx]) {
272 rpp = pp;
289 showstat(PLAYER *pp)
295 y = STAT_PLAY_ROW + 1 + (pp - Player);
296 c = stat_char(pp);
315 drawplayer(PLAYER *pp, bool draw)
320 x = pp->p_x;
321 y = pp->p_y;
322 Maze[y][x] = draw ? pp->p_face : pp->p_over;
330 if (!draw || newp == pp) {
339 if (pp->p_cloak < 0)
344 if (!draw || pp->p_cloak < 0)
346 if (pp->p_cloak-- == 0)
347 showstat(pp);
351 message(PLAYER *pp, const char *s)
353 cgoto(pp, HEIGHT, 0);
354 outstr(pp, s, strlen(s));
355 ce(pp);
384 player_sym(PLAYER *pp, int y, int x)
392 if (pp->p_ident->i_team == '*')
395 if (pp->p_ident->i_team != npp->p_ident->i_team)
397 return pp->p_ident->i_team;