ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/random_maps/wall.C
(Generate patch)

Comparing deliantra/server/random_maps/wall.C (file contents):
Revision 1.38 by root, Fri Jul 2 15:03:57 2010 UTC vs.
Revision 1.39 by root, Fri Jul 2 16:24:25 2010 UTC

138 /* extract the wall name, which is the text up to the leading _ */ 138 /* extract the wall name, which is the text up to the leading _ */
139 for (l = 0; l < 64; l++) 139 for (l = 0; l < 64; l++)
140 { 140 {
141 if (wall_name[l] == '_') 141 if (wall_name[l] == '_')
142 { 142 {
143 wall_name[l] = 0; 143 wall_name[++l] = 0;
144 break; 144 break;
145 } 145 }
146 } 146 }
147 147
148 surround_index = surround_flag2 (maze, i, j); 148 strcat (wall_name, wall_suffix [surround_flag2 (maze, i, j)]);
149 149
150 switch (surround_index)
151 {
152 case 0:
153 strcat (wall_name, "_0");
154 break;
155 case 1:
156 strcat (wall_name, "_1_3");
157 break;
158 case 2:
159 strcat (wall_name, "_1_4");
160 break;
161 case 3:
162 strcat (wall_name, "_2_1_2");
163 break;
164 case 4:
165 strcat (wall_name, "_1_2");
166 break;
167 case 5:
168 strcat (wall_name, "_2_2_4");
169 break;
170 case 6:
171 strcat (wall_name, "_2_2_1");
172 break;
173 case 7:
174 strcat (wall_name, "_3_1");
175 break;
176 case 8:
177 strcat (wall_name, "_1_1");
178 break;
179 case 9:
180 strcat (wall_name, "_2_2_3");
181 break;
182 case 10:
183 strcat (wall_name, "_2_2_2");
184 break;
185 case 11:
186 strcat (wall_name, "_3_3");
187 break;
188 case 12:
189 strcat (wall_name, "_2_1_1");
190 break;
191 case 13:
192 strcat (wall_name, "_3_4");
193 break;
194 case 14:
195 strcat (wall_name, "_3_2");
196 break;
197 case 15:
198 strcat (wall_name, "_4");
199 break;
200 }
201 wall_arch = archetype::find (wall_name); 150 wall_arch = archetype::find (wall_name);
202 151
203 return wall_arch ? wall_arch->instance () : the_wall->arch->instance (); 152 return wall_arch ? wall_arch->instance () : the_wall->arch->instance ();
204} 153}
205 154
302 /* canonicalize the wall name */ 251 /* canonicalize the wall name */
303 for (l = 0; l < 64; l++) 252 for (l = 0; l < 64; l++)
304 { 253 {
305 if (RP->wall_name[l] == '_') 254 if (RP->wall_name[l] == '_')
306 { 255 {
307 RP->wall_name[l] = 0; 256 RP->wall_name[++l] = 0;
308 break; 257 break;
309 } 258 }
310 } 259 }
311 260
312 surround_index = surround_flag4 (the_map, i, j); 261 strcat (RP->wall_name, wall_suffix [surround_flag4 (the_map, i, j)]);
313 /* This would be a lot cleaner to just us a lookup table,
314 * eg, wall_suffix[surround_index]
315 */
316 switch (surround_index)
317 {
318 case 0:
319 strcat (RP->wall_name, "_0");
320 break;
321 case 1:
322 strcat (RP->wall_name, "_1_3");
323 break;
324 case 2:
325 strcat (RP->wall_name, "_1_4");
326 break;
327 case 3:
328 strcat (RP->wall_name, "_2_1_2");
329 break;
330 case 4:
331 strcat (RP->wall_name, "_1_2");
332 break;
333 case 5:
334 strcat (RP->wall_name, "_2_2_4");
335 break;
336 case 6:
337 strcat (RP->wall_name, "_2_2_1");
338 break;
339 case 7:
340 strcat (RP->wall_name, "_3_1");
341 break;
342 case 8:
343 strcat (RP->wall_name, "_1_1");
344 break;
345 case 9:
346 strcat (RP->wall_name, "_2_2_3");
347 break;
348 case 10:
349 strcat (RP->wall_name, "_2_2_2");
350 break;
351 case 11:
352 strcat (RP->wall_name, "_3_3");
353 break;
354 case 12:
355 strcat (RP->wall_name, "_2_1_1");
356 break;
357 case 13:
358 strcat (RP->wall_name, "_3_4");
359 break;
360 case 14:
361 strcat (RP->wall_name, "_3_2");
362 break;
363 case 15:
364 strcat (RP->wall_name, "_4");
365 break;
366 }
367 262
368 wall_arch = archetype::find (RP->wall_name); 263 wall_arch = archetype::find (RP->wall_name);
369 264
370 if (!wall_arch) 265 if (!wall_arch)
371 { 266 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines