From df415b4c35010dc812ec4e57f91d295cf7b7e451 Mon Sep 17 00:00:00 2001 From: PatR Date: Wed, 2 Dec 2015 02:18:24 -0800 Subject: [PATCH] sp_lev.c update Shorten a function name in sp_lev.c that exceeded 31 characters. That's a limit imposed by the VMS linker and the compiler complains that it will be truncated. Make all sp_lev.c functions which aren't listed in extern.h be static and give all of them a declaration at the top of the file. I reordered the ones already declared there in the same order as they occur in the source, so the diff is quite a bit bigger than the actual changes. (Once the one with the long name became static, the length of its name no longer mattered, but I've shortened it anyway.) Indent a couple of #pragma directives. Some pre-ANSI compiler didn't like '#' in column 1 followed by something it didn't understand, even when that occurred in a conditional block which was in the midst of being excluded. (util/*_comp.y recently reminded me of that. files.c should get a fix like this too.) --- include/extern.h | 20 +++--- src/sp_lev.c | 161 ++++++++++++++++++++++++----------------------- 2 files changed, 94 insertions(+), 87 deletions(-) diff --git a/include/extern.h b/include/extern.h index 2d081587b..3806f5be6 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1,4 +1,4 @@ -/* NetHack 3.6 extern.h $NHDT-Date: 1448210010 2015/11/22 16:33:30 $ $NHDT-Branch: master $:$NHDT-Revision: 1.519 $ */ +/* NetHack 3.6 extern.h $NHDT-Date: 1449051498 2015/12/02 10:18:18 $ $NHDT-Branch: master $:$NHDT-Revision: 1.520 $ */ /* Copyright (c) Steve Creps, 1988. */ /* NetHack may be freely redistributed. See license for details. */ @@ -507,9 +507,8 @@ E void FDECL(release_camera_demon, (struct obj *, XCHAR_P, XCHAR_P)); E void FDECL(breakobj, (struct obj *, XCHAR_P, XCHAR_P, BOOLEAN_P, BOOLEAN_P)); E boolean FDECL(breaktest, (struct obj *)); -E boolean -FDECL(walk_path, - (coord *, coord *, boolean (*)(genericptr_t, int, int), genericptr_t)); +E boolean FDECL(walk_path, (coord *, coord *, + boolean (*)(genericptr, int, int), genericptr_t)); E boolean FDECL(hurtle_step, (genericptr_t, int, int)); /* ### drawing.c ### */ @@ -1182,8 +1181,9 @@ E void FDECL(mineralize, (int, int, int, int, BOOLEAN_P)); /* ### mkmap.c ### */ -void FDECL(flood_fill_rm, (int, int, int, BOOLEAN_P, BOOLEAN_P)); -void FDECL(remove_rooms, (int, int, int, int)); +E void FDECL(flood_fill_rm, (int, int, int, BOOLEAN_P, BOOLEAN_P)); +E void FDECL(remove_rooms, (int, int, int, int)); +/* E void FDECL(mkmap, (lev_init *)); -- need sp_lev.h for lev_init */ /* ### mkmaze.c ### */ @@ -1193,8 +1193,8 @@ E void FDECL(makemaz, (const char *)); E void FDECL(mazexy, (coord *)); E void NDECL(bound_digging); E void FDECL(mkportal, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P)); -E boolean -FDECL(bad_location, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P)); +E boolean FDECL(bad_location, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, + XCHAR_P, XCHAR_P)); E void FDECL(place_lregion, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, d_level *)); E void NDECL(fumaroles); @@ -2490,8 +2490,8 @@ E void FDECL(vision_recalc, (int)); E void FDECL(block_point, (int, int)); E void FDECL(unblock_point, (int, int)); E boolean FDECL(clear_path, (int, int, int, int)); -E void FDECL(do_clear_area, - (int, int, int, void (*)(int, int, genericptr_t), genericptr_t)); +E void FDECL(do_clear_area, (int, int, int, + void (*)(int, int, genericptr), genericptr_t)); E unsigned FDECL(howmonseen, (struct monst *)); #ifdef VMS diff --git a/src/sp_lev.c b/src/sp_lev.c index 659e6a16f..eb0c65793 100644 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 sp_lev.c $NHDT-Date: 1448094343 2015/11/21 08:25:43 $ $NHDT-Branch: master $:$NHDT-Revision: 1.75 $ */ +/* NetHack 3.6 sp_lev.c $NHDT-Date: 1449051497 2015/12/02 10:18:17 $ $NHDT-Branch: master $:$NHDT-Revision: 1.76 $ */ /* Copyright (c) 1989 by Jean-Christophe Collet */ /* NetHack may be freely redistributed. See license for details. */ @@ -14,38 +14,19 @@ #include "sp_lev.h" #ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4244) + #pragma warning(push) + #pragma warning(disable : 4244) #endif -typedef void FDECL((*select_iter_func), (int, int, genericptr_t)); +typedef void FDECL((*select_iter_func), (int, int, genericptr)); extern void FDECL(mkmap, (lev_init *)); -STATIC_DCL void FDECL(get_room_loc, (schar *, schar *, struct mkroom *)); -STATIC_DCL void FDECL(get_free_room_loc, (schar *, schar *, - struct mkroom *, packed_coord)); -STATIC_DCL void FDECL(create_trap, (trap *, struct mkroom *)); -STATIC_DCL int FDECL(noncoalignment, (ALIGNTYP_P)); -STATIC_DCL boolean FDECL(m_bad_boulder_spot, (int, int)); -STATIC_DCL void FDECL(create_monster, (monster *, struct mkroom *)); -STATIC_DCL void FDECL(create_object, (object *, struct mkroom *)); -STATIC_DCL void FDECL(create_altar, (altar *, struct mkroom *)); -STATIC_DCL boolean FDECL(search_door, (struct mkroom *, - xchar *, xchar *, XCHAR_P, int)); -STATIC_DCL void NDECL(fix_stair_rooms); -STATIC_DCL void FDECL(create_corridor, (corridor *)); -STATIC_DCL void NDECL(count_features); -STATIC_DCL boolean FDECL(create_subroom, (struct mkroom *, XCHAR_P, XCHAR_P, - XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P)); -#if 0 -STATIC_DCL long FDECL(opvar_array_length, (struct sp_coder *)); -#endif /*0*/ STATIC_DCL void NDECL(solidify_map); STATIC_DCL void FDECL(splev_stack_init, (struct splevstack *)); STATIC_DCL void FDECL(splev_stack_done, (struct splevstack *)); -STATIC_DCL void FDECL(splev_stack_push, - (struct splevstack *, struct opvar *)); +STATIC_DCL void FDECL(splev_stack_push, (struct splevstack *, + struct opvar *)); STATIC_DCL struct opvar *FDECL(splev_stack_pop, (struct splevstack *)); STATIC_DCL struct splevstack *FDECL(splev_stack_reverse, (struct splevstack *)); @@ -57,23 +38,55 @@ STATIC_DCL struct opvar * FDECL(opvar_new_region, (int,int, int,int)); #endif /*0*/ STATIC_DCL void FDECL(opvar_free_x, (struct opvar *)); STATIC_DCL struct opvar *FDECL(opvar_clone, (struct opvar *)); -STATIC_DCL struct opvar *FDECL(opvar_var_conversion, - (struct sp_coder *, struct opvar *)); -STATIC_DCL struct splev_var *FDECL(opvar_var_defined, - (struct sp_coder *, char *)); -STATIC_DCL struct opvar *FDECL(splev_stack_getdat, - (struct sp_coder *, XCHAR_P)); +STATIC_DCL struct opvar *FDECL(opvar_var_conversion, (struct sp_coder *, + struct opvar *)); +STATIC_DCL struct splev_var *FDECL(opvar_var_defined, (struct sp_coder *, + char *)); +STATIC_DCL struct opvar *FDECL(splev_stack_getdat, (struct sp_coder *, + XCHAR_P)); STATIC_DCL struct opvar *FDECL(splev_stack_getdat_any, (struct sp_coder *)); STATIC_DCL void FDECL(variable_list_del, (struct splev_var *)); STATIC_DCL void FDECL(lvlfill_maze_grid, (int, int, int, int, SCHAR_P)); STATIC_DCL void FDECL(lvlfill_solid, (SCHAR_P, SCHAR_P)); +STATIC_DCL void FDECL(set_wall_property, (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, + int)); +STATIC_DCL void NDECL(shuffle_alignments); +STATIC_DCL void NDECL(count_features); STATIC_DCL void NDECL(remove_boundary_syms); STATIC_DCL void FDECL(maybe_add_door, (int, int, struct mkroom *)); STATIC_DCL void NDECL(link_doors_rooms); STATIC_DCL void NDECL(fill_rooms); +STATIC_DCL int NDECL(rnddoor); +STATIC_DCL int NDECL(rndtrap); +STATIC_DCL void FDECL(get_location, (schar *, schar *, int, struct mkroom *)); +STATIC_DCL boolean FDECL(is_ok_location, (SCHAR_P, SCHAR_P, int)); STATIC_DCL unpacked_coord FDECL(get_unpacked_coord, (long, int)); +STATIC_DCL void FDECL(get_location_coord, (schar *, schar *, int, + struct mkroom *, long)); +STATIC_DCL void FDECL(get_room_loc, (schar *, schar *, struct mkroom *)); +STATIC_DCL void FDECL(get_free_room_loc, (schar *, schar *, + struct mkroom *, packed_coord)); +STATIC_DCL boolean FDECL(create_subroom, (struct mkroom *, XCHAR_P, XCHAR_P, + XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P)); +STATIC_DCL void FDECL(create_door, (room_door *, struct mkroom *)); +STATIC_DCL void FDECL(create_trap, (trap *, struct mkroom *)); +STATIC_DCL int FDECL(noncoalignment, (ALIGNTYP_P)); +STATIC_DCL boolean FDECL(m_bad_boulder_spot, (int, int)); +STATIC_DCL void FDECL(create_monster, (monster *, struct mkroom *)); +STATIC_DCL void FDECL(create_object, (object *, struct mkroom *)); +STATIC_DCL void FDECL(create_altar, (altar *, struct mkroom *)); STATIC_DCL void FDECL(replace_terrain, (replaceterrain *, struct mkroom *)); +STATIC_DCL boolean FDECL(search_door, (struct mkroom *, + xchar *, xchar *, XCHAR_P, int)); +STATIC_DCL void NDECL(fix_stair_rooms); +STATIC_DCL void FDECL(create_corridor, (corridor *)); +STATIC_DCL struct mkroom *FDECL(build_room, (room *, struct mkroom *)); +STATIC_DCL void FDECL(light_region, (region *)); STATIC_DCL void FDECL(wallify_map, (int, int, int, int)); +STATIC_DCL void FDECL(maze1xy, (coord *, int)); +STATIC_DCL void NDECL(fill_empty_maze); +STATIC_DCL boolean FDECL(sp_level_loader, (dlb *, sp_lev *)); +STATIC_DCL boolean FDECL(sp_level_free, (sp_lev *)); STATIC_DCL void FDECL(splev_initlev, (lev_init *)); STATIC_DCL struct sp_frame *FDECL(frame_new, (long)); STATIC_DCL void FDECL(frame_del, (struct sp_frame *)); @@ -102,32 +115,33 @@ STATIC_DCL void FDECL(spo_gold, (struct sp_coder *)); STATIC_DCL void FDECL(spo_corridor, (struct sp_coder *)); STATIC_DCL struct opvar *FDECL(selection_opvar, (char *)); STATIC_DCL xchar FDECL(selection_getpoint, (int, int, struct opvar *)); -STATIC_DCL void FDECL(selection_setpoint, - (int, int, struct opvar *, XCHAR_P)); +STATIC_DCL void FDECL(selection_setpoint, (int, int, struct opvar *, XCHAR_P)); STATIC_DCL struct opvar *FDECL(selection_not, (struct opvar *)); -STATIC_DCL struct opvar *FDECL(selection_logical_oper, - (struct opvar *, struct opvar *, CHAR_P)); -STATIC_DCL struct opvar *FDECL(selection_filter_mapchar, - (struct opvar *, struct opvar *)); +STATIC_DCL struct opvar *FDECL(selection_logical_oper, (struct opvar *, + struct opvar *, CHAR_P)); +STATIC_DCL struct opvar *FDECL(selection_filter_mapchar, (struct opvar *, + struct opvar *)); STATIC_DCL void FDECL(selection_filter_percent, (struct opvar *, int)); STATIC_DCL int FDECL(selection_rndcoord, (struct opvar *, schar *, schar *, BOOLEAN_P)); STATIC_DCL void FDECL(selection_do_grow, (struct opvar *, int)); +STATIC_DCL void FDECL(set_selection_floodfillchk, (int FDECL((*), (int,int)))); +STATIC_DCL int FDECL(floodfillchk_match_under, (int, int)); +STATIC_DCL int FDECL(floodfillchk_match_accessible, (int, int)); STATIC_DCL void FDECL(selection_floodfill, (struct opvar *, int, int, BOOLEAN_P)); -STATIC_DCL void FDECL(selection_do_ellipse, - (struct opvar *, int, int, int, int, int)); +STATIC_DCL void FDECL(selection_do_ellipse, (struct opvar *, int, int, + int, int, int)); STATIC_DCL long FDECL(line_dist_coord, (long, long, long, long, long, long)); -STATIC_DCL void FDECL(selection_do_gradient, - (struct opvar *, long, long, long, long, long, long, - long, long)); -STATIC_DCL void FDECL(selection_do_line, - (SCHAR_P, SCHAR_P, SCHAR_P, SCHAR_P, struct opvar *)); -STATIC_DCL void FDECL(selection_do_randline, - (SCHAR_P, SCHAR_P, SCHAR_P, SCHAR_P, SCHAR_P, SCHAR_P, - struct opvar *)); -STATIC_DCL void FDECL(selection_iterate, - (struct opvar *, select_iter_func, genericptr_t)); +STATIC_DCL void FDECL(selection_do_gradient, (struct opvar *, long, long, long, + long, long, long, long, long)); +STATIC_DCL void FDECL(selection_do_line, (SCHAR_P, SCHAR_P, SCHAR_P, SCHAR_P, + struct opvar *)); +STATIC_DCL void FDECL(selection_do_randline, (SCHAR_P, SCHAR_P, SCHAR_P, + SCHAR_P, SCHAR_P, SCHAR_P, + struct opvar *)); +STATIC_DCL void FDECL(selection_iterate, (struct opvar *, select_iter_func, + genericptr_t)); STATIC_DCL void FDECL(sel_set_ter, (int, int, genericptr_t)); STATIC_DCL void FDECL(sel_set_feature, (int, int, genericptr_t)); STATIC_DCL void FDECL(sel_set_door, (int, int, genericptr_t)); @@ -135,6 +149,8 @@ STATIC_DCL void FDECL(spo_door, (struct sp_coder *)); STATIC_DCL void FDECL(spo_feature, (struct sp_coder *)); STATIC_DCL void FDECL(spo_terrain, (struct sp_coder *)); STATIC_DCL void FDECL(spo_replace_terrain, (struct sp_coder *)); +STATIC_DCL boolean FDECL(generate_way_out_method, (int, int, struct opvar *)); +STATIC_DCL void NDECL(ensure_way_out); STATIC_DCL void FDECL(spo_levregion, (struct sp_coder *)); STATIC_DCL void FDECL(spo_region, (struct sp_coder *)); STATIC_DCL void FDECL(spo_drawbridge, (struct sp_coder *)); @@ -147,7 +163,11 @@ STATIC_DCL void FDECL(spo_map, (struct sp_coder *)); STATIC_DCL void FDECL(spo_jmp, (struct sp_coder *, sp_lev *)); STATIC_DCL void FDECL(spo_conditional_jump, (struct sp_coder *, sp_lev *)); STATIC_DCL void FDECL(spo_var_init, (struct sp_coder *)); +#if 0 +STATIC_DCL long FDECL(opvar_array_length, (struct sp_coder *)); +#endif /*0*/ STATIC_DCL void FDECL(spo_shuffle_array, (struct sp_coder *)); +STATIC_DCL boolean FDECL(sp_level_coder, (sp_lev *)); #define LEFT 1 #define H_LEFT 2 @@ -180,17 +200,6 @@ static aligntyp ralign[3] = { AM_CHAOTIC, AM_NEUTRAL, AM_LAWFUL }; static NEARDATA xchar xstart, ystart; static NEARDATA char xsize, ysize; -STATIC_DCL void FDECL(set_wall_property, - (XCHAR_P, XCHAR_P, XCHAR_P, XCHAR_P, int)); -STATIC_DCL int NDECL(rnddoor); -STATIC_DCL int NDECL(rndtrap); -STATIC_DCL void FDECL(get_location, (schar *, schar *, int, struct mkroom *)); -STATIC_DCL void FDECL(light_region, (region *)); -STATIC_DCL void FDECL(maze1xy, (coord *, int)); -STATIC_DCL boolean FDECL(sp_level_loader, (dlb *, sp_lev *)); -STATIC_DCL void FDECL(create_door, (room_door *, struct mkroom *)); -struct mkroom *FDECL(build_room, (room *, struct mkroom *)); - char *lev_message = 0; lev_region *lregions = 0; int num_lregions = 0; @@ -793,8 +802,6 @@ rndtrap() * The "humidity" flag is used to insure that engravings aren't * created underwater, or eels on dry land. */ -STATIC_DCL boolean FDECL(is_ok_location, (SCHAR_P, SCHAR_P, int)); - STATIC_OVL void get_location(x, y, humidity, croom) schar *x, *y; @@ -3753,24 +3760,24 @@ int dir; } STATIC_VAR int FDECL((*selection_flood_check_func), (int, int)); -STATIC_VAR schar floodfill_checker_match_under_typ; +STATIC_VAR schar floodfillchk_match_under_typ; -void -set_selection_floodfill_checker(f) +STATIC_OVL void +set_selection_floodfillchk(f) int FDECL((*f), (int, int)); { selection_flood_check_func = f; } -int -floodfill_checker_match_under(x,y) +STATIC_OVL int +floodfillchk_match_under(x,y) int x,y; { - return (floodfill_checker_match_under_typ == levl[x][y].typ); + return (floodfillchk_match_under_typ == levl[x][y].typ); } -int -floodfill_checker_match_accessible(x, y) +STATIC_OVL int +floodfillchk_match_accessible(x, y) int x, y; { return (ACCESSIBLE(levl[x][y].typ) @@ -4256,7 +4263,7 @@ struct sp_coder *coder; opvar_free(chance); } -boolean +STATIC_OVL boolean generate_way_out_method(nx,ny, ov) int nx,ny; struct opvar *ov; @@ -4330,7 +4337,7 @@ struct opvar *ov; return res; } -void +STATIC_OVL void ensure_way_out() { static const char nhFunc[] = "ensure_way_out"; @@ -4339,7 +4346,7 @@ ensure_way_out() int x,y; boolean ret = TRUE; - set_selection_floodfill_checker(floodfill_checker_match_accessible); + set_selection_floodfillchk(floodfillchk_match_accessible); if (xupstair && !selection_getpoint(xupstair, yupstair, ov)) selection_floodfill(ov, xupstair, yupstair, TRUE); @@ -4616,7 +4623,7 @@ struct sp_coder *coder; --x; break; default: - impossible("sp_level_coder: Bad MAZEWALK direction"); + impossible("spo_mazewalk: Bad MAZEWALK direction"); } if (!IS_DOOR(levl[x][y].typ)) { @@ -5751,8 +5758,8 @@ sp_lev *lvl; if (isok(x, y)) { struct opvar *pt = selection_opvar((char *) 0); - set_selection_floodfill_checker(floodfill_checker_match_under); - floodfill_checker_match_under_typ = levl[x][y].typ; + set_selection_floodfillchk(floodfillchk_match_under); + floodfillchk_match_under_typ = levl[x][y].typ; selection_floodfill(pt, x, y, FALSE); splev_stack_push(coder->stack, pt); } @@ -5905,7 +5912,7 @@ give_up: } #ifdef _MSC_VER -#pragma warning(pop) + #pragma warning(pop) #endif /*sp_lev.c*/ -- 2.40.0