Mercurial > hg > early-roguelike
comparison arogue7/chase.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 | e52a8a7ad4c5 |
comparison
equal
deleted
inserted
replaced
| 218:56e748983fa8 | 219:f9ef86cf22b2 |
|---|---|
| 17 * | 17 * |
| 18 */ | 18 */ |
| 19 | 19 |
| 20 #include <ctype.h> | 20 #include <ctype.h> |
| 21 #include <limits.h> | 21 #include <limits.h> |
| 22 #include <stdlib.h> | |
| 22 #include "curses.h" | 23 #include "curses.h" |
| 23 #include "rogue.h" | 24 #include "rogue.h" |
| 24 #define MAXINT INT_MAX | 25 #define MAXINT INT_MAX |
| 25 #define MININT INT_MIN | 26 #define MININT INT_MIN |
| 26 | 27 |
| 28 bool straight_shot(int ery, int erx, int eey, int eex, coord *shooting); | |
| 27 | 29 |
| 28 /* | 30 /* |
| 29 * Canblink checks if the monster can teleport (blink). If so, it will | 31 * Canblink checks if the monster can teleport (blink). If so, it will |
| 30 * try to blink the monster next to the player. | 32 * try to blink the monster next to the player. |
| 31 */ | 33 */ |
| 32 | 34 |
| 33 bool | 35 bool |
| 34 can_blink(tp) | 36 can_blink(struct thing *tp) |
| 35 register struct thing *tp; | |
| 36 { | 37 { |
| 37 register int y, x, index=9; | 38 register int y, x, index=9; |
| 38 coord tryp; /* To hold the coordinates for use in diag_ok */ | 39 coord tryp; /* To hold the coordinates for use in diag_ok */ |
| 39 bool spots[9], found_one=FALSE; | 40 bool spots[9], found_one=FALSE; |
| 40 | 41 |
| 125 * Can_shoot determines if the monster (er) has a direct line of shot | 126 * Can_shoot determines if the monster (er) has a direct line of shot |
| 126 * at the prey (ee). If so, it returns the direction in which to shoot. | 127 * at the prey (ee). If so, it returns the direction in which to shoot. |
| 127 */ | 128 */ |
| 128 | 129 |
| 129 coord * | 130 coord * |
| 130 can_shoot(er, ee) | 131 can_shoot(coord *er, coord *ee) |
| 131 register coord *er, *ee; | |
| 132 { | 132 { |
| 133 static coord shoot_dir; | 133 static coord shoot_dir; |
| 134 | 134 |
| 135 /* | 135 /* |
| 136 * They must be in the same room or very close (at door) | 136 * They must be in the same room or very close (at door) |
| 145 | 145 |
| 146 /* | 146 /* |
| 147 * chase: | 147 * chase: |
| 148 * Find the spot for the chaser(er) to move closer to the | 148 * Find the spot for the chaser(er) to move closer to the |
| 149 * chasee(ee). Rer is the room of the chaser, and ree is the | 149 * chasee(ee). Rer is the room of the chaser, and ree is the |
| 150 * room of the creature being chased (chasee). | 150 * room of the creature being chased (chasee). Flee is true if |
| 151 * destination (ee) is player and monster is running away | |
| 152 * or the player is in a wall and the monster can't get to it | |
| 151 */ | 153 */ |
| 152 | 154 |
| 153 chase(tp, ee, rer, ree, flee) | 155 void |
| 154 register struct thing *tp; | 156 chase(struct thing *tp, coord *ee, struct room *rer, struct room *ree, |
| 155 register coord *ee; | 157 bool flee) |
| 156 register struct room *rer, *ree; | |
| 157 bool flee; /* True if destination (ee) is player and monster is running away | |
| 158 * or the player is in a wall and the monster can't get to it | |
| 159 */ | |
| 160 { | 158 { |
| 161 int dist, thisdist, monst_dist = MAXINT; | 159 int dist, thisdist, monst_dist = MAXINT; |
| 162 register coord *er = &tp->t_pos; | 160 register coord *er = &tp->t_pos; |
| 163 struct thing *prey; /* What we are chasing */ | 161 struct thing *prey; /* What we are chasing */ |
| 164 coord ch_ret; /* Where chasing takes you */ | 162 coord ch_ret; /* Where chasing takes you */ |
| 492 /* | 490 /* |
| 493 * do_chase: | 491 * do_chase: |
| 494 * Make one thing chase another. | 492 * Make one thing chase another. |
| 495 */ | 493 */ |
| 496 | 494 |
| 497 do_chase(th) | 495 void |
| 498 register struct thing *th; | 496 do_chase(struct thing *th) |
| 499 { | 497 { |
| 500 register struct room *orig_rer, /* Original room of chaser */ | 498 register struct room *orig_rer, /* Original room of chaser */ |
| 501 *new_room; /* new room of monster */ | 499 *new_room; /* new room of monster */ |
| 502 char floor, rch, sch; | 500 char floor, rch, sch; |
| 503 coord old_pos, /* Old position of monster */ | 501 coord old_pos, /* Old position of monster */ |
| 801 /* | 799 /* |
| 802 * Get_hurl returns the weapon that the monster will "throw" if he has one | 800 * Get_hurl returns the weapon that the monster will "throw" if he has one |
| 803 */ | 801 */ |
| 804 | 802 |
| 805 struct linked_list * | 803 struct linked_list * |
| 806 get_hurl(tp) | 804 get_hurl(struct thing *tp) |
| 807 register struct thing *tp; | |
| 808 { | 805 { |
| 809 struct linked_list *arrow=NULL, *bolt=NULL, *rock=NULL, | 806 struct linked_list *arrow=NULL, *bolt=NULL, *rock=NULL, |
| 810 *spear = NULL, *dagger=NULL, *dart=NULL, *aklad=NULL; | 807 *spear = NULL, *dagger=NULL, *dart=NULL, *aklad=NULL; |
| 811 register struct linked_list *pitem; | 808 register struct linked_list *pitem; |
| 812 register struct object *obj; | 809 register struct object *obj; |
| 849 /* | 846 /* |
| 850 * runto: | 847 * runto: |
| 851 * Set a monster running after something | 848 * Set a monster running after something |
| 852 */ | 849 */ |
| 853 | 850 |
| 854 runto(runner, spot) | 851 void |
| 855 register struct thing *runner; | 852 runto(struct thing *runner, coord *spot) |
| 856 coord *spot; | |
| 857 { | 853 { |
| 858 if (on(*runner, ISSTONE)) | 854 if (on(*runner, ISSTONE)) |
| 859 return; | 855 return; |
| 860 | 856 |
| 861 /* If we are chasing a new creature, forget about thrown weapons */ | 857 /* If we are chasing a new creature, forget about thrown weapons */ |
| 879 * to shoot (if there is a line of sight). If shooting, monsters | 875 * to shoot (if there is a line of sight). If shooting, monsters |
| 880 * get in the way. Otherwise, they do not. | 876 * get in the way. Otherwise, they do not. |
| 881 */ | 877 */ |
| 882 | 878 |
| 883 bool | 879 bool |
| 884 straight_shot(ery, erx, eey, eex, shooting) | 880 straight_shot(int ery, int erx, int eey, int eex, coord *shooting) |
| 885 register int ery, erx, eey, eex; | |
| 886 register coord *shooting; | |
| 887 { | 881 { |
| 888 register int dy, dx; /* Deltas */ | 882 register int dy, dx; /* Deltas */ |
| 889 char ch; | 883 char ch; |
| 890 | 884 |
| 891 /* Does the monster have a straight shot at prey */ | 885 /* Does the monster have a straight shot at prey */ |
