--- deliantra/server/random_maps/wall.C 2010/07/02 15:03:57 1.38 +++ deliantra/server/random_maps/wall.C 2010/07/02 16:24:25 1.39 @@ -140,64 +140,13 @@ { if (wall_name[l] == '_') { - wall_name[l] = 0; + wall_name[++l] = 0; break; } } - surround_index = surround_flag2 (maze, i, j); + strcat (wall_name, wall_suffix [surround_flag2 (maze, i, j)]); - switch (surround_index) - { - case 0: - strcat (wall_name, "_0"); - break; - case 1: - strcat (wall_name, "_1_3"); - break; - case 2: - strcat (wall_name, "_1_4"); - break; - case 3: - strcat (wall_name, "_2_1_2"); - break; - case 4: - strcat (wall_name, "_1_2"); - break; - case 5: - strcat (wall_name, "_2_2_4"); - break; - case 6: - strcat (wall_name, "_2_2_1"); - break; - case 7: - strcat (wall_name, "_3_1"); - break; - case 8: - strcat (wall_name, "_1_1"); - break; - case 9: - strcat (wall_name, "_2_2_3"); - break; - case 10: - strcat (wall_name, "_2_2_2"); - break; - case 11: - strcat (wall_name, "_3_3"); - break; - case 12: - strcat (wall_name, "_2_1_1"); - break; - case 13: - strcat (wall_name, "_3_4"); - break; - case 14: - strcat (wall_name, "_3_2"); - break; - case 15: - strcat (wall_name, "_4"); - break; - } wall_arch = archetype::find (wall_name); return wall_arch ? wall_arch->instance () : the_wall->arch->instance (); @@ -304,66 +253,12 @@ { if (RP->wall_name[l] == '_') { - RP->wall_name[l] = 0; + RP->wall_name[++l] = 0; break; } } - surround_index = surround_flag4 (the_map, i, j); - /* This would be a lot cleaner to just us a lookup table, - * eg, wall_suffix[surround_index] - */ - switch (surround_index) - { - case 0: - strcat (RP->wall_name, "_0"); - break; - case 1: - strcat (RP->wall_name, "_1_3"); - break; - case 2: - strcat (RP->wall_name, "_1_4"); - break; - case 3: - strcat (RP->wall_name, "_2_1_2"); - break; - case 4: - strcat (RP->wall_name, "_1_2"); - break; - case 5: - strcat (RP->wall_name, "_2_2_4"); - break; - case 6: - strcat (RP->wall_name, "_2_2_1"); - break; - case 7: - strcat (RP->wall_name, "_3_1"); - break; - case 8: - strcat (RP->wall_name, "_1_1"); - break; - case 9: - strcat (RP->wall_name, "_2_2_3"); - break; - case 10: - strcat (RP->wall_name, "_2_2_2"); - break; - case 11: - strcat (RP->wall_name, "_3_3"); - break; - case 12: - strcat (RP->wall_name, "_2_1_1"); - break; - case 13: - strcat (RP->wall_name, "_3_4"); - break; - case 14: - strcat (RP->wall_name, "_3_2"); - break; - case 15: - strcat (RP->wall_name, "_4"); - break; - } + strcat (RP->wall_name, wall_suffix [surround_flag4 (the_map, i, j)]); wall_arch = archetype::find (RP->wall_name);