Mercurial > hg > early-roguelike
comparison arogue7/maze.c @ 219:f9ef86cf22b2
Advanced Rogue 7: convert to ANSI-style function declarations.
Almost 1500 lines of compiler warnings remain, and the GCC developers
are already working on a new version with even more warnings turned on
by default.
author | John "Elwin" Edwards |
---|---|
date | Fri, 19 Feb 2016 21:02:28 -0500 |
parents | adfa37e67084 |
children | 0250220d8cdd |
comparison
equal
deleted
inserted
replaced
218:56e748983fa8 | 219:f9ef86cf22b2 |
---|---|
28 | 28 |
29 static char *frontier, | 29 static char *frontier, |
30 *bits; | 30 *bits; |
31 static int maze_lines, | 31 static int maze_lines, |
32 maze_cols; | 32 maze_cols; |
33 char *moffset(), | 33 |
34 *foffset(); | 34 void draw_maze(void); |
35 int findcells(int y, int x); | |
36 char *foffset(int y, int x); | |
37 char *moffset(int y, int x); | |
38 void rmwall(int newy, int newx, int oldy, int oldx); | |
35 | 39 |
36 | 40 |
37 /* | 41 /* |
38 * crankout: | 42 * crankout: |
39 * Does actual drawing of maze to window | 43 * Does actual drawing of maze to window |
40 */ | 44 */ |
41 crankout() | 45 void |
46 crankout(void) | |
42 { | 47 { |
43 reg int x, y; | 48 reg int x, y; |
44 | 49 |
45 for (y = 0; y < lines - 3; y++) { | 50 for (y = 0; y < lines - 3; y++) { |
46 move(y + 1, 0); | 51 move(y + 1, 0); |
69 | 74 |
70 /* | 75 /* |
71 * domaze: | 76 * domaze: |
72 * Draw the maze on this level. | 77 * Draw the maze on this level. |
73 */ | 78 */ |
74 do_maze() | 79 void |
80 do_maze(void) | |
75 { | 81 { |
76 reg int least; | 82 reg int least; |
77 reg struct room *rp; | 83 reg struct room *rp; |
78 reg struct linked_list *item; | 84 reg struct linked_list *item; |
79 reg struct object *obj; | 85 reg struct object *obj; |
93 rp->r_max.y = lines - 3; | 99 rp->r_max.y = lines - 3; |
94 draw_maze(); /* put maze into window */ | 100 draw_maze(); /* put maze into window */ |
95 /* | 101 /* |
96 * add some gold to make it worth looking for | 102 * add some gold to make it worth looking for |
97 */ | 103 */ |
98 item = spec_item(GOLD, NULL, NULL, NULL); | 104 item = spec_item(GOLD, 0, 0, 0); |
99 obj = OBJPTR(item); | 105 obj = OBJPTR(item); |
100 obj->o_count *= (rnd(5) + 5); /* add in one large hunk */ | 106 obj->o_count *= (rnd(5) + 5); /* add in one large hunk */ |
101 attach(lvl_obj, item); | 107 attach(lvl_obj, item); |
102 cnt = 0; | 108 cnt = 0; |
103 do { | 109 do { |
106 mvaddch(tp.y, tp.x, GOLD); | 112 mvaddch(tp.y, tp.x, GOLD); |
107 obj->o_pos = tp; | 113 obj->o_pos = tp; |
108 /* | 114 /* |
109 * add in some food to make sure he has enough | 115 * add in some food to make sure he has enough |
110 */ | 116 */ |
111 item = spec_item(FOOD, NULL, NULL, NULL); | 117 item = spec_item(FOOD, 0, 0, 0); |
112 obj = OBJPTR(item); | 118 obj = OBJPTR(item); |
113 attach(lvl_obj, item); | 119 attach(lvl_obj, item); |
114 do { | 120 do { |
115 rnd_pos(rp, &tp); | 121 rnd_pos(rp, &tp); |
116 } until (mvinch(tp.y, tp.x) == FLOOR || cnt++ > 5000); | 122 } until (mvinch(tp.y, tp.x) == FLOOR || cnt++ > 5000); |
131 | 137 |
132 /* | 138 /* |
133 * draw_maze: | 139 * draw_maze: |
134 * Generate and draw the maze on the screen | 140 * Generate and draw the maze on the screen |
135 */ | 141 */ |
136 draw_maze() | 142 void |
143 draw_maze(void) | |
137 { | 144 { |
138 reg int i, j, more; | 145 reg int i, j, more; |
139 reg char *ptr; | 146 reg char *ptr; |
140 | 147 |
141 maze_lines = (lines - 3) / 2; | 148 maze_lines = (lines - 3) / 2; |
167 | 174 |
168 /* | 175 /* |
169 * findcells: | 176 * findcells: |
170 * Figure out cells to open up | 177 * Figure out cells to open up |
171 */ | 178 */ |
172 findcells(y,x) | 179 int |
173 reg int x, y; | 180 findcells(int y, int x) |
174 { | 181 { |
175 reg int rtpos, i; | 182 reg int rtpos, i; |
176 | 183 |
177 *foffset(y, x) = FALSE; | 184 *foffset(y, x) = FALSE; |
178 border_cells.num_pos = 0; | 185 border_cells.num_pos = 0; |
219 /* | 226 /* |
220 * foffset: | 227 * foffset: |
221 * Calculate memory address for frontier | 228 * Calculate memory address for frontier |
222 */ | 229 */ |
223 char * | 230 char * |
224 foffset(y, x) | 231 foffset(int y, int x) |
225 int y, x; | |
226 { | 232 { |
227 | 233 |
228 return (frontier + (y * maze_cols) + x); | 234 return (frontier + (y * maze_cols) + x); |
229 } | 235 } |
230 | 236 |
234 * Returns true if the player can see the specified location within | 240 * Returns true if the player can see the specified location within |
235 * the confines of a maze (within one column or row) | 241 * the confines of a maze (within one column or row) |
236 */ | 242 */ |
237 | 243 |
238 bool | 244 bool |
239 maze_view(y, x) | 245 maze_view(int y, int x) |
240 int y, x; | |
241 { | 246 { |
242 register int start, goal, delta, ycheck, xcheck, absy, absx, see_radius; | 247 register int start, goal, delta, ycheck, xcheck, absy, absx, see_radius; |
243 register bool row; | 248 register bool row; |
244 | 249 |
245 /* Get the absolute value of y and x differences */ | 250 /* Get the absolute value of y and x differences */ |
339 /* | 344 /* |
340 * moffset: | 345 * moffset: |
341 * Calculate memory address for bits | 346 * Calculate memory address for bits |
342 */ | 347 */ |
343 char * | 348 char * |
344 moffset(y, x) | 349 moffset(int y, int x) |
345 int y, x; | |
346 { | 350 { |
347 | 351 |
348 return (bits + (y * (cols - 1)) + x); | 352 return (bits + (y * (cols - 1)) + x); |
349 } | 353 } |
350 | 354 |
353 | 357 |
354 /* | 358 /* |
355 * rmwall: | 359 * rmwall: |
356 * Removes appropriate walls from the maze | 360 * Removes appropriate walls from the maze |
357 */ | 361 */ |
358 rmwall(newy, newx, oldy, oldx) | 362 void |
359 int newy, newx, oldy, oldx; | 363 rmwall(int newy, int newx, int oldy, int oldx) |
360 { | 364 { |
361 reg int xdif,ydif; | 365 reg int xdif,ydif; |
362 | 366 |
363 xdif = newx - oldx; | 367 xdif = newx - oldx; |
364 ydif = newy - oldy; | 368 ydif = newy - oldy; |